Question

Oui, j'ai lu les "Questions connexes" dans la case ci-dessus après avoir tapé ceci =). Ils ne m'ont toujours pas aidé autant que je le voudrais, car je comprends la différence entre les deux. Je ne sais pas si j'en ai besoin dans mon cas particulier.

J'ai donc une application (simple et petite) entièrement testée par unité. J'ai une classe 'Job' avec une seule méthode publique Run () qui prend dans une feuille de calcul Excel comme paramètre, extrait les données, vérifie la base de données pour voir si nous avons déjà ces données, et si non, fait une demande à un fournisseur tiers, prend cette réponse, la place dans la base de données puis termine le travail (mise à jour de la base de données à nouveau)

J'ai IConnection pour parler au fournisseur, IParser pour analyser les fichiers Excel / fournisseur, IDataAccess pour effectuer tous les accès à la base de données. Ma classe d'emploi est maigre & amp; signifie et ne fait pas beaucoup de logique, même si en réalité il fait tout de la logique, il s’agit vraiment de "chaîner" les données jusqu'aux objets composites ...

Ainsi, tous les objets composites sont eux-mêmes testés, y compris le DAL, et même ma méthode Run () de la classe Job est testée intégralement à l'aide de mocks pour tous les chemins de code possibles.

Alors, dois-je effectuer tout type de test d’intégration à ce stade-ci, sinon lancez l’application pour voir si elle fonctionne? Est-ce que mes tests de la méthode Run () avec mock sont considérés comme mes tests d'intégration? Ou bien mon test d'intégration doit-il utiliser des instances réelles au lieu de simulacres, puis des valeurs de base de données Assert à la fin, sur la base d'une entrée de feuille de calcul Excel connue? Mais c'est ce que tous mes tests unitaires sont déjà en train de faire (juste dans des endroits distincts, et le test d'exécution simulé s'assure que ces endroits sont «connectés»)! En suivant la méthodologie DRY, je ne vois pas la nécessité de faire un test d’intégration ici ...

Est-ce que je manque quelque chose d'évident les gars? Encore merci ...

Était-ce utile?

La solution

Je pense que la plus grande chose qui vous manque, c’est le comportement réel de vos systèmes externes. Bien que vos tests unitaires puissent certes affirmer que les étapes individuelles effectuent l'action attendue, elles ne révèlent en rien les problèmes d'exécution pouvant survenir lors de l'accès à des systèmes externes. Vos systèmes externes peuvent également contenir des données que vous ne connaissez pas.

Alors oui, je pense que vous avez besoin des deux. Vous n'avez pas nécessairement besoin d'être aussi détaillé dans les deux tests. Parfois, vous pouvez simplement laisser le test d'intégration être un test de fumée

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top