J'ai besoin de jouer un peu l'avocat des démons sur cette question car je ne peux pas bien la défendre par manque d'expérience. Voici l'affaire, j'obtiens conceptuellement les différences entre les tests unitaires et les tests d'intégration. En se concentrant spécifiquement sur les méthodes de persistance et le référentiel, un test unitaire utiliserait une maquette éventuellement via un framework comme Moq pour affirmer qu'un ordre recherché a été renvoyé comme prévu.
Disons que j'ai construit le test unitaire suivant:
[TestMethod]
public void GetOrderByIDTest()
{
//Uses Moq for dependency for getting order to make sure
//ID I set up in 'Arrange' is same one returned to test in 'Assertion'
}
Donc, si je mets en place OrderIdExpected = 5
et mon objet maquette revient 5
comme l'ID mon test passera. J'ai compris. J'ai testé le code à l' unité pour m'assurer que ce que mon code préforme renvoie l'objet et l'ID attendus et pas autre chose.
L'argument que j'obtiendrai est le suivant:
"Pourquoi ne pas simplement sauter les tests unitaires et faire des tests d'intégration? C'est tester la procédure stockée de la base de données et votre code ensemble qui est important. Cela semble trop de travail supplémentaire d'avoir des tests unitaires et des tests d'intégration quand finalement je veux savoir si la base de données appelle et le code fonctionne. Je sais que les tests prennent plus de temps, mais ils doivent être exécutés et testés malgré tout, il me semble donc inutile d'avoir les deux. Il suffit de tester ce qui compte. "
Je pourrais le défendre avec une définition de manuel comme: "Eh bien, c'est un test d'intégration et nous devons tester le code séparément comme un test unitaire et, yada, yada, yada ..." C'est un cas où une explication puriste des pratiques contre la réalité se perd. Je rencontre parfois cela et si je ne peux pas défendre le raisonnement derrière le code de test unitaire qui repose finalement sur des dépendances externes, alors je ne peux pas le justifier.
Toute aide sur cette question est grandement appréciée, merci!