Aller au contenu principal

Test unitaires

Objectifs​

Ajouter des tests unitaires pour tester une méthode de service en utilisant une base de données InMemory.

Projet GitHub

É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