Skip to content

Commit

Permalink
Ajout d'un exercice sur les tests unitaires
Browse files Browse the repository at this point in the history
  • Loading branch information
mbriau committed Mar 24, 2024
1 parent 8a5350f commit bea4aa3
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 0 deletions.
10 changes: 10 additions & 0 deletions web/docs/02-info/10-TestsUnitaires.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,12 @@ Les **étapes** indiqués dans l'exemple, montre dans quel ordre les méthodes s
- Il est **IMPORTANT** d'effacer les données dans notre BD de tests entre 2 tests
- Il est **IMPORTANT** que la BD utilise **UseLazyLoadingProxies(true)** si c'est également le cas dans notre projet!

Il faut ajouter une libraire (Utiliser la même version que pour les librairies d'EntityFramework utilisées dans votre projet)

| ![image](image.png) |
|-|


### Exemple de test avec InMemoryDatabase
```csharp
[TestClass]
Expand Down Expand Up @@ -195,6 +201,10 @@ Dans cet exemple:
- Pour démarrer la couverture de code, il faut sélectionner les tests qui nous intéresse
- Ensuite faire Analyser la couverture du code

:::warning
Il faut la version **Pro** pour exécuter la couverture du code. **Ça FONCTIONNE à l'école**, mais ça ne fonctionnera pas si vous avez une version **Express**.
:::

| ![image](/img/infos/TestsUnitaires/OutilCouverture1.png) |
|-|

Expand Down
Binary file added web/docs/02-info/image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
36 changes: 36 additions & 0 deletions web/docs/03-exercices/12-TestsUnitaires.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Test unitaires

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

[Projet GitHub](https://github.com/CEM-420-5W5/TestsUnitairesPourServices)

## É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** (Ça devrait **générer le projet de tests** pour vous!)
- 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**
:::

- 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**

## Solution

La solution est dans la branche **solution** du repo

0 comments on commit bea4aa3

Please sign in to comment.