7) Tests d'architecture
Avec toutes les découvertes réalisées jusqu'à présent on a pu se rendre compte que l'architecture désirée était une architecture en Onion :

On va s'assurer que le code actuel respecte le Design escompté :
Prendre du temps pour comprendre ce que sont des
Architecture Unit TestsEcrire des tests d'architecture en utilisant la librairie ArchUnit

Pour aller plus vite, voici une classe contenant des extensions facilitant l'écriture et le lancement de tels tests :
Inward Dependencies
On va valider le sens des dépendances en ajoutant une nouvelle classe de tests
On définit les couches de notre
onion:
Domain Model
On peut alors écrire une première règle pour notre Domain Model :
Celle-ci échoue :

La classe Terrain se trouve dans l'Application Services alors qu'elle est une entité à part entière du Domain...
On corrige cela en déplaçant la classe :

Règle de l'Application Services
On en profite pour implémenter une règle sur l'Application Service :
Quid de l'infrastructure ?
Pour le moment nous n'avons qu'une interface de Repository (Un Port) au sein du namespace Infrastructure.
Est-ce que cela fait du sens au regard de la règle de dépendance ?
Nous allons déplacer ce port dans le Domain.
Nous pouvons tout de même implémenter une règle spécifiant que les items présents dans le namespace Repository doit implémenter l'interface IPartieDeChasseRepository :
Règles d'équipe
On peut ajouter certaines règles d'équipe du genre :
Toutes les interfaces doivent commencer par
IUne méthode commençant par
Getdoit retourner quelque chose...
Nouveau rapport SonarCloud disponible ici.
Reflect
A quoi cette technique pourrait vous servir ?
Quelles règles pourraient être utiles dans votre quotidien ?

Last updated
Was this helpful?