Une question posée plusieurs fois auparavant mais avec un développement spécifique de twds mvc.
J'ai été un très bon garçon et j'ai codé toutes mes actions de contrôleur avec des tests unitaires correspondants, ce qui a été génial (même si un peu [lire beaucoup] répétitif parfois). Pour être honnête, j'ai en fait créé un petit modèle T4 pour écrire la plupart des os nus des tests unitaires initiaux, puis peaufiné selon les besoins. J'admets ne pas être sûr de savoir comment gérer les tests dans les vues qui contiennent des vues partielles - mais c'est une histoire pour une autre question.
Maintenant, la partie difficile pour moi de décider est à quel point la couverture doit être profonde dans ma couche de service. La raison en est que certaines de mes méthodes de service (pour le meilleur ou pour le pire) effectuent en fait une variété de requêtes linq qui fournissent ensuite des informations discrètes à la logique suivante dans la méthode. Je sais que je pourrais (devrais ??) décomposer ces méthodes pour appeler uniquement la logique requise pour chaque instruction linq, puis les appliquer dans la méthode. Cependant, dans de nombreux cas, il n'y a jamais de réutilisation des «fonctions» linq et par conséquent, il estime que cela refactoriserait le code trop loin.
Ce que je demande, c'est qu'avec une logique complexe se produisant dans une méthode, est-ce `` assez bon '' d'avoir une méthode de test qui affirme simplement le résultat requis et / ou l'erreur attendue, ou si chaque ligne logique doit être simultanée et testée également. la façon dont je le vois, pour faire les tests correctement, alors la logique de la méthode (ligne par ligne) devrait également obtenir une sorte de couverture. Cependant (à mon avis naïf), cela pourrait conduire à un cycle sans fin d'essayer de garder le test et la méthode mise en œuvre si étroitement alignés (ce que je sais qu'ils devraient être) au point de créer une industrie artisanale dans les tests eux-mêmes.
Je sais que ma question peut offenser quelques-uns des adeptes du TDD qui verront cela comme une évidence. N'étant pas dans le camp TDD, c'est une «évidence» pour moi, d'où la question.
btw - avait vérifié cela pour des idées:
regardant maintenant vers le bas les votes réguliers :)
[modifier] - au profit de l'électeur (enfin en ce moment célibataire !!) "proche". cette question n'est pas subjective. Je recherche un consensus sur un sujet très ciblé. Je ne cherche pas à attiser des passions négatives, je ne cherche pas à exposer les défauts de la technologie - je suis un grand fan. Alors s'il vous plaît, laissez un commentaire poli à mon avantage si vous votez pour clore, car cela peut m'aider à restructurer la question en cas d'ambiguïté ou de désinformation. cette question pourrait bénéficier à une grande partie de la population mvc.
Merci!!
Jim