Cependant, pour minimiser le travail redondant, est-ce une bonne idée d'essayer d'intégrer les tests unitaires dans les tests d'acceptation ?
Non.
En d'autres termes, que le dernier [acceptation] appelle le premier [unité]. Est-ce que le fait d'aller dans la direction opposée a un sens ?
Ne vous donnez pas la peine.
Les tests d'acceptation sont souvent politiques. Vous les montrez à des personnes qui, sur la base de leur instinct, décident d'accepter ou de rejeter.
Ensuite, vous discutez de la validité des tests d'acceptation.
Puis vous vous disputez sur l'étendue du travail et la prochaine version.
Les tests d'acceptation ne sont pas - généralement - techniques. S'ils l'étaient, alors vous auriez des tests unitaires formels et ce serait tout.
N'essayez pas d'enjoliver la politique. Embrassez-la. Laissez les choses se faire.
Vous pouvez espérer que le développement piloté par les tests d'acceptation (ATDD) conduise à ce que "les tests d'acceptation soient rédigés et acceptés par l'ensemble de l'équipe avant le début du développement". Mais vous devez tenir compte de la réalité : tout ce qui est écrit à l'avance est au mieux spécieux et au pire négociable.
Le principe qui sous-tend toutes les méthodes Agile est que vous ne pouvez vous mettre d'accord que pour obtenir quelque chose de libérable. Tout ce qui suit est négociable.
La prémisse derrière tout test-first (TDD, ATDD, ou autre) est qu'un test est un accord à toute épreuve. Sauf que ce n'est pas le cas. Avec n'importe quelle méthode TDD (ou ATDD) vous pouvez vous mettre d'accord -- en principe -- sur le test résultats mais vous n'avez pas vraiment accepté le test. lui-même .
Il se peut que le test soit difficile à écrire. Ou pire, ne peut pas être écrit du tout. Vous pouvez accepter des résultats qui semblent testables, mais s'avèrent être mal définies. Que faire maintenant ? Ce sont des choses que vous ne pouvez pas savoir avant de commencer le développement et d'entrer dans les détails.
Tous les tests sont importants. Et aucun type particulier de test ne peut être un sur-ensemble ou un sous-ensemble d'un autre type de test. Ce sont toujours des ensembles qui se chevauchent partiellement. Essayer de les combiner pour économiser un peu de travail s'avérera probablement une perte de temps.
Plus de tests, c'est mieux que tout. L'union de tous les tests a plus de valeur que d'essayer de forcer une relation sous-ensemble-superset entre les tests.