Question

Je viens de commencer à utiliser ASP.NET MVC et TDD. J'ai lu que lors des tests unitaires, vous devriez vous concentrer sur le test de votre code, et non sur d'autres systèmes, tels que la base de données. Cependant, que se passe-t-il lorsque des fonctionnalités essentielles résident dans la base de données?

J'ai utilisé la série MVC Storefront comme guide initial pour la configuration de mes projets et modèles. Comme la recherche en texte intégral est essentielle, je l’ai configurée comme une fonction de mon référentiel

IQueryable<HealthOrganization> SearchOrganizations(string phrase);

Maintenant, la logique de cette recherche nécessite une fonction table avec le texte intégral et quelques autres fonctions dans la base de données. La logique dans ces fonctions est impossible à obtenir exactement dans le fakerepository. Quelle est votre recommandation sur la meilleure stratégie pour effectuer des tests unitaires et effectuer une analyse TDD sur la recherche?

Était-ce utile?

La solution

Ce n'est pas un test unitaire, c'est un test d'intégration. Vous pouvez donc difficilement le mettre en œuvre comme le TDD.

Je suppose que votre code ne fait pas grand chose mais appelle la base de données. Donc, vous n'avez pas à tester beaucoup. Si vous pouvez simuler l'appel de la base de données au niveau le plus bas, vous pouvez vérifier si l'appel a lieu. Si cela devient très compliqué, il vaut mieux ne pas écrire de test unitaire pour cela. Ce ne sera que difficile à maintenir.

Pour écrire le test d'intégration, vous avez besoin d'une vraie base de données.

Autres conseils

Vous pouvez créer une base de données de test contenant un ensemble d'éléments connus, puis vérifier que le code de recherche renvoie les résultats que vous attendez.

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