0 Tage Serie
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
@DataJpaTest
class UserRepositoryTest {
@Autowired
private UserRepository userRepository;
@Test
void shouldFindUserByEmail() {
User user = new User("[email protected]", "Alice");
userRepository.save(user);
Optional<User> found = userRepository.findByEmail("[email protected]");
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.