J'ai volontairement simplifié l'exemple, mais il y a d'autres tests dont un 
qui couvre déjà l'erreur que tu propose. C'était d'ailleurs le premier 
test: vérifier la valeur obtenue quand je consomme. Le test que je met en 
lumière dans l'article c'est le second: vérifier qu'on avance bien dans le 
text. Mais c'est vrai que du coup la nouvelle version du test est plus 
solide. Je vais voir comment intégrer ça dans l'article. Merci pour tes 
remarques.

Le samedi 13 janvier 2018 23:26:03 UTC+1, oaz a écrit :
>
> Salut,
> Non seulement la première mouture teste un état interne, mais, en plus, 
> elle ne garantit pas grand chose.
> Si on fait pas trop gaffe, on peut se retrouver avec une implémentation 
> qui passe le test de l'état interne mais plante sur le test qui consomme la 
> suite de la chaine.
> J'ai joint un exemple mais je ne sais pas si les fichiers passent dans 
> googlegroups. (j'ai juste remplacé "result.append(string)" par 
> "result.append(self._string[:len(string)])" dans l'implémentation initiale)
>
> En allant plus loin dans la réflexion, je dirais que ce qui compte, ce 
> n'est pas tant de tester un état ou un comportement mais de tester un cas 
> d'usage réel.
> Je considère que les tests d'une classe doivent ressembler au code que 
> l'on va écrire quand on va effectivement utiliser la classe en question. 
> Dans le cas présent, j'imagine que le code client se soucie plus du contenu 
> du résultat que de l'état de l'index. 
>
> Olivier
>
> Le 13/01/2018 à 21:02, Antoine Cezar a écrit :
>
> Salut tout le monde.
>
> Je prépare un article sur un cas qui m'est arrivé récemment. J'aimerai vos 
> avis sur ce que j'ai écrit: http://antoine.cezar.fr/testing-behaviour.html
> -- 
> Vous recevez ce message, car vous êtes abonné au groupe Google Groupes 
> "Software Craftsmanship Toulouse".
> Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le 
> concernant, envoyez un e-mail à l'adresse 
> [email protected] <javascript:>
> .
> Pour obtenir davantage d'options, consultez la page 
> https://groups.google.com/d/optout.
>
>
>

-- 
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Software 
Craftsmanship Toulouse.
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, 
envoyez un e-mail à l'adresse 
[email protected].
Pour plus d'options, visitez le site https://groups.google.com/d/optout .

Répondre à