0 Tage Serie
java / beginner
Snippet

Datenbankabfragen mit dem DataJpaTest-Slice überprüfen

Die @DataJpaTest-Annotation konfiguriert eine In-Memory-Datenbank und lädt ausschließlich @Entity- und Repository-Beans. Dies ermöglicht schnelle und gezielte Integrationstests für die Datenzugriffsschicht, ohne den vollständigen Spring-Kontext zu laden.

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]");
userRepository.save(user);
Optional<User> found = userRepository.findByEmail("[email protected]");
assertTrue(found.isPresent());
}
}
spring
Erklärung
1
@DataJpaTest
Aktiviert das JPA-Test-Slicing mit In-Memory-Datenbank und automatischem Transaktions-Rollback nach jedem Test.
2
private UserRepository userRepository;
Injiziert das zu testende Spring Data JPA-Repository.
3
Optional<User> found = userRepository.findByEmail("[email protected]");
Führt die Abfrage aus, um die gespeicherte Entität anhand der E-Mail-Adresse abzurufen.
4
assertTrue(found.isPresent());
Überprüft, dass das zurückgegebene Optional nicht leer ist und den Benutzer enthält.