Integration Test with Mock MVC - Satttoshi/github-wiki-generator GitHub Wiki
Integrationstests sind eine wichtige Art von Tests in der Java-Programmierung, um die Funktionalität eines Systems als Ganzes zu testen. Sie bieten eine Möglichkeit, um sicherzustellen, dass Komponenten, die miteinander agieren, korrekt zusammenarbeiten und das erwartete Verhalten liefern.
MockMvc ist eine Klasse in Spring Boot, die es Entwicklern ermöglicht, HTTP-Anfragen an ihre REST-APIs zu senden und die resultierenden Antworten auf korrektes Verhalten zu prüfen. Durch die Verwendung von MockMvc können Integrationstests geschrieben werden, die prüfen, ob die Schnittstellen einer Anwendung funktionieren, ohne den Code in einer tatsächlichen Umgebung ausführen zu müssen.
Ein Beispielcode für einen Integrationstest mit MockMvc könnte wie folgt aussehen:
@RunWith(SpringRunner.class)
@WebMvcTest(CustomerController.class)
public class CustomerControllerIntegrationTest {
    @Autowired
    private MockMvc mockMvc;
    @MockBean
    private CustomerService customerService;
    @Test
    public void givenCustomers_whenGetCustomers_thenStatus200() throws Exception {
        Customer johnDoe = new Customer(1L, "John Doe");
        List<Customer> customers = Arrays.asList(johnDoe);
        given(customerService.getCustomers()).willReturn(customers);
        mockMvc.perform(get("/customers"))
            .andExpect(status().isOk())
            .andExpect(jsonPath("$", hasSize(1)))
            .andExpect(jsonPath("$[0].name", is(johnDoe.getName())));
    }
}Dieses Beispiel zeigt einen Test, der prüft, ob ein CustomerController korrekt funktioniert. Es definiert eine Liste von Kunden und prüft dann, ob ein GET-Aufruf auf den Endpunkt /customers die erwartete Liste zurückgibt.
Die Verwendung von MockMvc in diesem Beispiel ermöglicht es uns, zu testen, ob die HTTP-Anfrage korrekt beantwortet wird, ohne tatsächlich eine Netzwerkverbindung aufzubauen oder eine Datenbankabfrage durchzuführen. Stattdessen können wir eine "gefälschte" Umgebung erstellen, um den Status der Anwendung zu prüfen und mögliche Fehlerquellen auszuschließen.
Die Verwendung von Integrationstests und MockMvc in der Java-Programmierung ist ein wichtiger Teil des Testens von Anwendungen. Durch Tests, die das gesamte System abdecken, können Entwickler mögliche Fehlerquellen finden und beheben, bevor die Anwendung in Produktion geht.