2009-10-27 3 views
0

Oui, j'ai lu les 'questions connexes' dans la boîte ci-dessus après avoir tapé ceci =). Ils ne m'ont toujours pas aidée autant que je le voudrais, car je comprends la différence entre les deux - je ne suis pas sûr d'en avoir besoin dans mon cas particulier.Quel est le but du test d'intégration automatique ici?

J'ai donc une application entièrement testée (simple &). J'ai une classe 'Job' avec une seule méthode publique Run() + cteurs qui prend en paramètre une feuille de calcul Excel, 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 requête à un fournisseur tiers, prend cette réponse, la met dans la base de données et termine le travail (mise à jour db à nouveau)

J'ai IConnection pour parler au fournisseur, IParser pour analyser les fichiers Excel/vendeur, IDataAccess pour faire tous les accès à la base de données . Ma classe d'emploi est maigre & moyenne et ne marche pas beaucoup de logique, même si en réalité il fait tous de la logique, il est vraiment juste « enchaînant le long de » données à travers les objets composites ...

donc tous les Les objets composites sont eux-mêmes testés unitairement, y compris le DAL, et même ma méthode Run() sur la classe Job est entièrement testée à l'aide de mocks pour tous les chemins de code.

Donc - dois-je faire n'importe quel type d'intégration tester à ce stade, d'autres puis exécutez l'application pour voir si cela fonctionne? Est-ce que mes tests de la méthode Run() avec des faux-semblants sont considérés comme mes tests d'intégration? Ou mon test d'intégration doit-il utiliser des instances réelles plutôt que des simulacres, puis affirmer les valeurs de la base de données à la fin, en fonction de la saisie de feuille de calcul Excel? Mais c'est ce que tous mes tests unitaires font déjà (juste à des endroits séparés, et le test Run mocké s'assure que ces endroits se connectent)! Suivant la méthodologie DRY, je ne vois pas le besoin de faire un test d'intégration ici ...

Est-ce que je rate quelque chose d'évident? Merci beaucoup encore ...

Répondre

1

Je pense que la plus grande chose qui vous manque est le comportement réel de vos systèmes externes. Alors que vos tests unitaires peuvent certainement affirmer que les différentes étapes effectuent l'action attendue, elles ne révèlent pas les problèmes d'exécution qui peuvent 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 également détaillé dans les deux tests. Parfois, vous pouvez simplement laisser le test d'intégration être un test de fumée

+0

merci pour le conseil. Par «test de fumée», vous voulez dire exécuter l'application et vous assurer qu'aucune exception n'est levée? – dferraro

+0

Oui, ou des tests très superficiels – krosenvold

Questions connexes