web-dev-qa-db-fra.com

Les tests d'intégration utilisent-ils des simulations?

Je suis actuellement dans une classe de tests de logiciels où pour notre projet de semestre, nous devons effectuer plusieurs types de tests dessus, tels que des tests unitaires et des tests d'intégration. Pour les tests d'intégration, le professeur a dit d'utiliser des simulations et des bibliothèques de simulation (comme EasyMock et Mockito) pour nos tests d'intégration. Je deviens assez confus cependant. Le test d'intégration consiste à tester en dehors des classes, modules, services, etc.

25
TheLegendOfCode

Si vous avez une fonctionnalité qui touche plusieurs composants externes, vous pouvez vous moquer de tous sauf un pour isoler et tester un composant spécifique. Par exemple, supposons que vous ayez une fonction qui appelle un service Web et fasse ensuite quelque chose avec une base de données basée sur les résultats. Vous pouvez écrire trois tests d'intégration:

  1. un test qui se moque de l'appel du service Web mais implique une réelle connectivité à la base de données.
  2. un test qui effectue un véritable appel de service Web mais utilise une connectivité de base de données factice.
  3. un test qui effectue un véritable appel de service Web et implique une véritable connexion à la base de données.

Si vous exécutez les trois tests et que 1 et 3 échouent, il y a de fortes chances qu'il y ait un bogue dans votre code qui fonctionne avec la base de données, car le seul test réussi a été celui utilisant la connectivité de la base de données fictive.

En général, les tests d'intégration n'utilisent pas de maquette, mais j'ai fait quelque chose comme ça à l'occasion.

On ne sait pas immédiatement ce que l'on entend par Test d'intégration mais l'utilisation de Fakes/Mocks/Test Doubles est une technique valide pour créer des scénarios de test à tous les niveaux dans le - pyramide de tests . [1] [2] [3]

7
jschnasse