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.

  1. 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.

  2. 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

  1. 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.

  1. 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