Je dois écrire des tests unitaires et des tests d'intégration pour un projet.
Si je les garde ensemble, y a-t-il des avantages ou des inconvénients à cette approche?
En général: oui, vous devez placer les tests d'intégration et les tests unitaires dans différents dossiers. Souvent, les programmeurs ne tracent pas une ligne claire entre ces deux types de tests et écrivent simplement tout type de test utile. Mais les tests d'intégration ont tendance à être plus lents, car ils impliquent souvent:
En revanche, un test unitaire se moquerait de toute opération coûteuse, de sorte que les tests unitaires ont tendance à s'exécuter rapidement (en fait, la partie la plus lente de l'exécution du test est souvent le cadre de test lui-même).
Lorsqu'un programmeur travaille sur le système, il est dans un cycle d'édition-test. Plus ils obtiennent de rétroaction de test rapidement et plus le cycle est court, plus ils peuvent être productifs. Donc là, nous voulons exécuter uniquement des tests importants qui se terminent rapidement. La suite de tests complète ne serait exécutée que dans le cadre d'un processus d'assurance qualité, par exemple sur un serveur CI.
Cela signifie que les grandes suites de tests doivent être classées. Pouvons-nous sélectionner uniquement des tests unitaires pour un composant particulier? Pouvons-nous exclure les tests lents? Une façon simple de le faire est de maintenir différentes suites de tests dans différents répertoires. Si vous n'avez que très peu de tests, un seul répertoire serait également OK tant qu'un programmeur peut facilement sélectionner un sous-ensemble de tests.
Tout ce qui permet à un programmeur d'obtenir rapidement des commentaires est bon. La suite de tests la plus complète n'a pas d'importance si elle n'est pas exécutée régulièrement.
Lectures complémentaires: