J'écris une application qui utilise des bibliothèques tierces pour instancier et effectuer des opérations sur des machines virtuelles. Au début, j'écrivais des tests d'intégration à toutes les fonctionnalités de l'application. Au début, je rédigeais des tests d'intégration. Mais eux, j'ai trouvé que ces tests n'étaient pas vraiment utiles car mon environnement devait être à un état déterminé, ce qui rendait les tests de plus en plus difficiles à écrire. Et j'ai décidé de faire seulement l'unité et les tests d'acceptation. Donc, ma question ... est/peut-il y avoir une méthode ou un indice à remarquer lorsque les tests d'intégration ne doivent pas être utilisés? (ou je me trompe et dans tous les cas, ils doivent être écrits)Quand ne pas utiliser les tests d'intégration
Répondre
Lorsque vous ne prévoyez pas réellement accrocher votre application à quelque chose de "réel"; pas de vrais conteneurs, bases de données, ressources ou services réels. C'est ce qu'un test d'intégration est censé vérifier; que tout fonctionne correctement ensemble.
Les tests d'intégration permettent de tester un système complet dont les entrées et les sorties sont bien définies et qui ne sont pas susceptibles de changer. Si vos entrées/sorties attendues changent souvent, la maintenance du test peut devenir un problème de maintenance ou, pire, vous pouvez choisir d'améliorer une interface en raison de la quantité de travail nécessaire pour mettre à niveau les tests d'intégration.
La règle simple et courte est: Test de test d'intégration ce qui brise grâce à l'intégration et tester le reste dans les tests unitaires isolément. Vous pouvez même hate integration tests. L'écriture d'un test unitaire pour une fonction qui ne prend qu'un seul paramètre entier est assez difficile. Toutes les combinaisons d'états possibles (internes et externes (temps, systèmes externes)) et les entrées peuvent rendre les tests d'intégration pratiquement impossibles (pour une application décente.)
- 1. Quand ne pas utiliser un noeud Drupal?
- 2. Les tests OCUnit ne fonctionnent pas/ne sont pas détectés
- 3. rake ne pas exécuter les tests unitaires
- 4. NAnt ne pas exécuter les tests NUnit
- 5. Association ne pas trouver les objets créés dans les tests
- 6. Quand dois-je utiliser/ne pas utiliser les connexions DB groupées et non groupées?
- 7. Utiliser une table quand je ne devrais pas
- 8. Kohana. Tests d'environnement. Les filtres ne sont pas activés
- 9. comment simuler la fonction $ quand ne peut pas utiliser jquery
- 10. Les événements GORM ne tirent pas dans les tests d'intégration
- 11. Quand utiliser les documents incorporés?
- 12. Les suites de tests ne s'exécutent pas dans Rails 2.3.5
- 13. ZenTest autotest ne pas exécuter des tests
- 14. Quand utiliser Parallel.For?
- 15. XAttribute implémentant IComparable lors des tests, mais pas quand live
- 16. Quand utiliser un module et quand utiliser une classe
- 17. Java tests unitaires sur les méthodes qui utilisent des tiers libs qui ne pas utiliser Interfaces
- 18. Pour utiliser ou ne pas utiliser les expressions régulières?
- 19. Maven2 compile mes tests, mais ne les exécute pas
- 20. Quand devrions-nous utiliser la classe et quand nous ne devrions pas
- 21. Quand utiliser les modèles d'usine?
- 22. scénarios quand utiliser les fermetures
- 23. Quand utiliser les conventions d'appel
- 24. Quand utiliser POJO et Quand utiliser SLSB
- 25. ZenTest autotest ne pas exécuter des tests
- 26. tests de recherche de râteau. Autotest ne les trouvant pas
- 27. Les tests ne sont pas disponibles dans Visual Studio 2008?
- 28. Fitnesse Suite ne parvient pas à exécuter les tests
- 29. Les tests d'unité Objective-C ne trouvent pas mes ressources
- 30. foo_url (mock_foo) ne fonctionne parfois pas dans les tests rspec