6) Définir des propriétés
Avant de nous lancer dans notre refactoring, on peut encore aller plus loin sur nos tests afin d'améliorer encore notre confiance vis-à-vis de notre code base.
Pour ce faire on va écrire des tests de propriétés :
Prendre du temps pour comprendre ce qu'est le
Property-Based TestingQuelles propriétés peut-on identifier à partir de notre
Example Mapping?Ecrire des tests de propriétés en utilisant la librairie FsCheck

Démarrer une partie

On peut identifier des propriétés telles que :
Ou encore :
Cas passant
On commence par ajouter la dépendance sur
FsCheck
On ajoute 1 test dans la classe
DemarrerUnePartieDeChasse
On doit travailler sur la génération d'un terrain valide
Ensuite, on travaille sur la manière de générer des chasseurs valides
On définit comment construire 1 groupe de chasseurs :
On utilise les générateurs dans la propriété
On lance le test et vérifie les inputs générés

On a alors 1 seul test qui va en fait valoir l'écriture de 100 tests
Pour ce test on a alors :
Cette propriété est complémentaire au test DemarrerUnePartieDeChasse.AvecPlusieursChasseurs qui valide la bonne instantiation de l'objet PartieDeChasse à partir d'un exemple.
Dans la propriété, on valide que la partie démarre sans se soucier de l'instantiation de la partie au sens du Domain.
Cas non passant
Concernant les cas non-passants, nous allons les remplacer par des tests de propriétés.
On commence par ce test :
On le change en
Property
On crée une méthode qui va lancer l'action de manière
safeet valider la lancement de l'exception
Autres propriétés
D'autres propriétés pourraient être définies sur d'autres classes de tests.
Nouveau rapport SonarCloud disponible ici.
Reflect
Que pensez vous de cette technique ?
Quelles sont ses avantages ?
Comment vous pourriez l'utiliser ?

Last updated
Was this helpful?