Maison >Java >javaDidacticiel >H tests amusants au printemps

H tests amusants au printemps

Patricia Arquette
Patricia Arquetteoriginal
2024-11-26 15:39:13348parcourir

H весёлые тесты в Spring

Bonjour, cher guerrier Java ! ? Si vous êtes ici, il est temps de vous lancer dans les tests et de prouver que votre code fonctionne mieux que ce que promettent les spécialistes du marketing. Aujourd'hui, nous allons parler de tester la logique au Spring à l'aide d'une base de données H2. Allons-y! ?

Pourquoi avons-nous besoin de H2 ?

Imaginez : vous écrivez le service le plus cool, mais vous avez peur que votre logique métier vive dans un monde d'illusions. Vous ne voulez pas que les tests pilotent la vraie base de données car :

  1. C'est lent.
  2. C'est risqué (supprimer quelque chose par accident ? On n'est pas comme ça !).
  3. C'est trop réaliste, et H2 est notre matrice, où tout est sous contrôle. H2 est votre code ami :
  • Léger.
  • Intégré.
  • Idéal pour les tests.

Configuration de application.properties : laissez H2 faire le travail à votre place

Avant de commencer, préparons notre petit monde de test douillet. Pour ce faire, nous écrirons les paramètres nécessaires dans src/test/resources/application.properties. Voilà :

# Подключаем H2
spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password

# Убедимся, что Hibernate всё за нас делает
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

Qu’est-ce que tout cela signifie ?

spring.datasource.url: indique que nous souhaitons utiliser une base de données "en mémoire" (mem:testdb), qui disparaîtra dès que nous désactiverons les tests.
DB_CLOSE_DELAY=-1 : la base de données vivra jusqu'à la fin de la JVM (vive la stabilité !).
spring.jpa.hibernate.ddl-auto=create-drop : nous créons une base de données lors de l'exécution des tests, la supprimons après. La propreté est la clé du succès.

Ajout de dépendances

Pour Maven

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
</dependency>

Pour Gradle

implementation 'com.h2database:h2'

Mise en place de tests

Écrivons maintenant nos tests. On active Spring, la magie des annotations et un peu d'amour pour le code.

Exemple : Ajouter un utilisateur

Disons que nous avons une entité Utilisateur :

# Подключаем H2
spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password

# Убедимся, что Hibernate всё за нас делает
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

Test de l'ajout d'un utilisateur

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
</dependency>

Que se passe-t-il ici ?

@SpringBootTest : Relever le contexte Spring (tout est comme en production, mais sécurisé).
@Autowired : Injection de dépendances parce que nous le méritons.
UserRepository : votre référentiel fonctionne comme au combat.

Résultats

Vous savez désormais comment créer de l'amitié entre Spring, H2 et tests. Ces exemples sont la clé d’un monde où il n’y a pas de bugs et où les tests fonctionnent du premier coup. N'oubliez pas : les tests n'améliorent pas votre code, mais ils vous aident à dormir sur vos deux oreilles. Bonne chance! ?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn