2010-03-17 5 views
0

Je suis en train de mettre en œuvre un contrat de service pour le service WCF.Développement piloté par les tests pour les méthodes complexes impliquant une dépendance externe

Selon TDD, j'ai écrit un cas de test pour simplement le transmettre en utilisant des valeurs codées en dur. Après cela, j'ai commencé à mettre de la vraie logique dans mon implémentation de service. La logique réelle repose sur 3-4 service externe et base de données. Que dois-je faire à mon cas de test d'origine que j'ai écrit?

Si je le garde identique pour faire passer le test, il devra appeler plusieurs autres services externes. Donc, j'ai une question en général que dois-je faire si j'écris d'abord un cas de test pour une façade d'entreprise en utilisant TDD et plus tard quand j'ajoute de la vraie logique, si elle implique une dépendance externe.

Répondre

1

Utilisez un cadre de simulation (avec inversion de dépendance ou simplement une fabrique) pour injecter de fausses dépendances dans l'objet. Ceux-ci peuvent alors juste retourner des réponses standardisées et/ou vérifier que la classe utilise les dépendances comme vous l'aviez prévu. Par exemple, si votre code appelle un référentiel à enregistrer, le test de la méthode commerciale ne nous intéresse pas vraiment, car le référentiel a effectivement enregistré dans un magasin de persistance, mais il a été appelé et a renvoyé des données si nécessaire . Ce que vous testez réellement, c'est comment votre code réagit à ce que la dépendance a retourné, ou si elle a été correctement utilisée - mais pas la fonctionnalité réelle de la dépendance

Idéalement, le premier test aurait dû être représentatif de la façon dont la classe/méthode fonctionnerait et retourner les données, de sorte que le test serait toujours valide une fois que vous avez terminé.