Testing
Worauf die Prüfung abzielt
Welchen Test du wann nimmst — und warum.
Das musst du können
- Unit Test: eine Klasse, ohne Spring.
@WebMvcTest: MVC-Slice.@DataJpaTest: JPA-Slice.@SpringBootTest: voller Application Context.- MockMvc: MVC ohne echten Server.
@MockBean/@MockitoBean: Bean durch Mockito-Mock ersetzen.- Spring-Tests mit
@Transactionalrollen oft standardmäßig zurück. - Testcontainers für echte Infrastruktur in Integrationstests.
Passende Buchkapitel
- Spring Boot Testing Mental Model
- Unit Testing Services
- Web Layer Testing
- Integration Testing and Final Testing Review
Typische Prüfungsfalle
Nicht alles mit @SpringBootTest. Nimm den kleinsten Test, der das Verhalten beweist.
Kurz selbst prüfen
- Unit vs.
@WebMvcTestvs.@DataJpaTestvs.@SpringBootTest? - Was macht MockMvc?
- Was macht
@MockBean/@MockitoBean? - Warum sind Slice-Tests schneller?
Musterantworten
Unit = eine Klasse ohne Spring. @WebMvcTest = Controller/MVC. @DataJpaTest = Repositories/JPA. @SpringBootTest = mehrere Schichten oder voller Context.
MockMvc simuliert HTTP-Requests gegen MVC — ohne Server-Start.
@MockBean / @MockitoBean ersetzt eine Context-Bean durch ein Mockito-Mock.
Slices laden nur einen Ausschnitt — deshalb schneller und fokussierter.
Merksatz
Unit = eine Klasse. Slice = eine Schicht. @SpringBootTest = voller Context.