Testing en Spring Boot (MVC - Thymeleaf)
Le testing est une étape cruciale du développement logiciel, et Spring Boot offre des outils puissants pour tester des applications basées sur l’architecture MVC.
Dans ce qui suit, on va voir comment tester efficacement une application Spring Boot MVC en couvrant les types de tests, les outils couramment utilisés, et des exemples pratiques.
Pourquoi tester une application Spring Boot ?
Le testing garantit que votre application fonctionne comme prévu, qu’elle est robuste et maintenable.
Dans une application MVC :
- Controller : Gère les requêtes HTTP et renvoie des réponses.
- Service : Contient la logique métier.
- Repository : Interagit avec la base de données.Types de tests
Unit Tests : Testent des unités de code isolées (Service, Repository)
Integration Tests : Vérifient l’intégration entre plusieurs composants (Controller-Service , Service-Repository)
End-to-End Tests : Vérifient le système entier
Outils pour le testing en Spring Boot
JUnit : Framework de test standard pour Java
Mockito : Simule les dépendances pour les tests unitaires.
Spring Boot Test : Fournit des annotations comme
@WebMvcTest
,@DataJpaTest
….MockMvc : Teste les controllers sans démarrer tout le contexte Spring.
Exemple : Tester une application MVC Spring Boot (Thymeleaf)
Structure de l’application
(Dans une application MVC, on doit tester les couches : contrôleur, service, repository)
Imaginons une application simple de gestion d’étudiants:
- Model :Employee
- Controller :EmployeeController
- Service :EmployeetService
- Repository :EmployeeRepository
EXEMPLE de Test du Contrôleur
Get all employees
Create new Employee
Get Employee By Id
Retourner un formulaire de modification pour le UPDATE
Update Employee
Delete Employee
Return a form to add new Employee
EXEMPLE de test du repository
Tester la couche repository dans une application Spring Boot consiste à s’assurer que les méthodes du repository interagissent correctement avec la BD.
Au lieu d’utiliser votre vraie base de données (celle utilisée en production), vous pouvez utiliser une BD temporaire et légère, comme H2, spécialement conçue pour les tests.
On doit donc commencer par configurer une base de données en mémoire (H2) en ajoutant la dépendance correspondante dans le fichier
pom.xml
Si nécessaire, on crée un fichier spécifique pour les tests et configure la base de données H2 ( on peut le nommer
application-test.properties
)
github link : cliquer ici pour voir tout le projet