java / beginner
Snippet
JPA-Repository-Abfragen mit DataJpaTest überprüfen
@DataJpaTest ist eine Slice-Test-Annotation in Spring Boot, die sich ausschließlich auf JPA-Komponenten konzentriert. Sie richtet eine In-Memory-Datenbank ein, scannt nach @Entity-Klassen und konfiguriert Spring Data JPA-Repositories, ohne den gesamten Webserver zu starten, wodurch Datenbank-Integrationstests schnell und isoliert ablaufen.
snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@DataJpaTestclass UserRepositoryTest {@Autowiredprivate UserRepository userRepository;@Testvoid shouldFindUserByEmail() {userRepository.save(user);assertTrue(found.isPresent());assertEquals("Alice", found.get().getName());}}
spring
Erklärung
1
@DataJpaTest
Konfiguriert eine fokussierte Testumgebung, die nur Spring Data JPA-Repositories und eine eingebettete Datenbank enthält.
2
@Autowired private UserRepository userRepository;
Injiziert das zu testende Repository-Bean direkt in die Testklasse.
3
userRepository.save(user);
Speichert eine Testentität in der temporären In-Memory-Datenbank.
4
Optional<User> found = userRepository.findByEmail("[email protected]");
Führt die Repository-Suchabfrage aus, um den gespeicherten Datensatz abzurufen.
5
assertTrue(found.isPresent());
Überprüft, ob die Abfrage den Benutzer erfolgreich in der Datenbank gefunden hat.