Ce message a été modifié 1 fois.
Dernière modification : 11 novembre 2015
à 16:17 par
Guybrush.
Guybrush(et une vraie configuration de coverage, qui retourne maintenant >80% de coverage au lieu de ~50% comme précédemment, quand il lurkait sur les librairies externes ).Et avec les nouveaux tests pour les billets, le forum et la messagerie, on est maintenant à 90%. Je pense que je peux raisonnablement changer des choses dans le code sans avoir peur de tout casser et de ne pas m'en apercevoir avant la mise en prod
PetitCalgonLe code coverage n'est pas un indice de qualitéNop, c'est un indice de résistance au changement et de bonne testabilité du code. Ah ben donc de qualité
PetitCalgonVouloir atteindre 95/100% de code coverage en unit-test est inutile, c'est un joli but qui fait bien dans les statistiques, mais il y a des choses qui sont trop compliqués à tester, même en Mockant comme un fou. C'est pour ça qu'on passe après aux CUIT pour tester le reste.C'est le cas quand on veut pas refactorer son code pour le rendre testable
PetitCalgonLe code coverage n'est pas un indice de qualitéJe sais, et j'en suis convaincu aussi. C'est un indicateur, parmi d'autres, mais avoir 100% (ou même un autre pourcentage) n'est pas suffisant, clairement Surtout que dans le cas présent, la moitié des tests ne fait que simuler un appel à une page, et de vérifier que tout se passe bien. Il y a quelques tests fonctionnels spécifiques, et quelques tests unités (mais essentiellement, la raison derrière ces choix, c'est que Django s'occupe de la partie "bas niveau", je n'ai donc pas besoin de tester cette partie là).
FabeLes couches de controllers et de repository n'ont effectivement pas d'intérêt en TU, si elles sont bien découplées du métier.Voilà ce que je voulais résumer avec ma dernière phrase
Les tests d'intégrations sont bons pour tester le fonctionnement global d'une IHM ou d'une API, pas pour compenser un manque de TU. Ils ont d'autres inconvénients néanmoins (lents, besoin d'un environnement bien provisionné et "propre" en données).
GuybrushJe sais, et j'en suis convaincu aussi. C'est un indicateur, parmi d'autresIndeed, c'était ma pensée.
PetitCalgonSinon quand un chef de projet veut avoir un code coverage à 95%, les devs écrivent des TU bateaux rien que pour augmenter le code coverage et qui ne testent au final que rien.Tester qu'on a une ArgumentNullException quand on lance une méthode avec le paramètre null, généralement, ça n'apporte pas grand chose.Clairement. D'ailleurs, je ne voulais pas tomber dans ce travers. Je me suis servi du coverage pour identifier les parties de code qui n'étaient actuellement pas visitées par un test, et j'ai écrit des tests fonctionnels spécialement pour couvrir ces parties, non pas pour augmenter le score, mais parce que ce sont des aspects importants.
# pragma: no cover
pour ignorer un block. Mais c'est "de la triche"..
Ce message a été modifié 2 fois.
Dernière modification : 8 décembre 2015
à 16:15 par
Tchou.
1996-2024 — Lexpage v4 — GPLv3 (sources)
page générée le 23 novembre 2024 à 00:31:53