Test unitaires
Objectifs
Ajouter des tests unitaires pour tester une méthode de service en utilisant une base de données InMemory.
État initial
- Il y a déjà un service avec un méthode Move qui permet de déplacer un chat d'une maison à l'autre.
Complétez les tâches suivantes
- Générez des tests pour la méthode Move de CatsService (Voir les étapes dans l'info)
- Créer un projet MSTest
- Renommer le fichier de test et créer la même arborescence
- Utilisez une InMemoryDatabase
- Il faut écrire du code pour ajouter les données à notre BD pour pouvoir rouler les tests. Il va falloir ajouter:
- Au moins 2 maisons
- Au moins un chat sans maison
- Au moins un chat avec maison
info
Utilisez des constantes pour les IDs de vos tests, on veut éviter d'utiliser des chiffres magiques
private const int CHAT_AVEC_MAISON_ID = 1;
private const int CHAT_SANS_MAISON_ID = 2;
- Atteindre une couverte de 100% sur la méthode Move du CatsService
- Utilisez l'outil pour vérifier la couverture de code
- Les tests doivent tous être réussis et les asserts doivent être valides
- Vérifiez qu'un Move avec succès ne retourne pas null
- Vérifiez qu'un Move d'un chat donc l'Id est inconnu retourn null
- Vérifiez qu'un Move d'un chat qui n'a pas de maison lance une exception WildCatException
- Vérifiez qu'un Move d'un chat se fait bien à partir de sa maison DontStealMyCatException
- Il faut valider les messages des exceptions
Par exemple:
Assert.AreEqual("On n'apprivoise pas les chats sauvages", exception.Message);
Solution
La solution est dans la branche solution du repo