Comment tester correctement mon DAL?
je suis nouveau aux tests unitaires. Mais comment puis-je tester mon DAL qui est écrit avec Entity Framework, pour m'assurer que mon code DAL fonctionne correctement mais qu'aucune base de données n'est réellement touchée? Quelqu'un pourrait donner autant de détails que possible s'il vous plaît.
3 réponses
si vous voulez tester que votre couche d'accès aux données fonctionne correctement, vous avez vraiment besoin de le tester contre une base de données à un moment donné car autrement vous n'êtes pas réellement en train de tester qu'elle fonctionne.
quand je teste mon DAL j'utilise les transactions et le rollback à la fin du test de l'unité, donc le db est propre.
la plupart des ORMs de nos jours offrent une sorte de langage d'interrogation, que ce soit LINQ ou HQL, ou une autre saveur. Parce qu'un bon test unitaire exige que vous ne frappez pas réellement la base de données, vous devez vous moquer de l'ORM et faire cela est la plus grande douleur dans le cul que vous pouvez penser. Ça n'en vaut pas la peine, IMO. En fin de compte, vous ne finissez par tester que vous avez écrit la requête appropriée dans votre code, vous n'obtenez aucune valeur de régression et pouvez mieux servir vos objectifs en inspectant le code.
Je ne dis pas que vous ne devriez pas tester votre utilisation du DAL, cependant; juste ne pas essayer le test de l'unité. Vous devriez quand même avoir une série de tests d'intégration et d'acceptation par les utilisateurs pour votre programme/système; laissez ceux-ci tester votre accès aux données à la place.