java / beginner
Snippet
Isoliertes Testen von Web-Endpunkten mit MockMvc
Die @WebMvcTest-Annotation lädt ausschließlich die Spring-MVC-Infrastruktur und den angegebenen Controller, ohne einen vollständigen HTTP-Server zu starten. MockMvc ermöglicht das Simulieren von HTTP-GET/POST-Anfragen und das einfache Prüfen von Statuscodes, Headern und Antwortkörpern für schnelle Controller-Tests.
snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@RestController@RequestMapping("/api/hello")public class HelloController {@GetMappingpublic String sayHello() {return "Hello Spring!";}}@WebMvcTest(HelloController.class)public class HelloControllerTest {@Autowiredprivate MockMvc mockMvc;@Testpublic void testSayHelloEndpoint() throws Exception {mockMvc.perform(MockMvcRequestBuilders.get("/api/hello")).andExpect(MockMvcResultMatchers.status().isOk()).andExpect(MockMvcResultMatchers.content().string("Hello Spring!"));}}
spring
Erklärung
1
@WebMvcTest(HelloController.class)
Konzentriert den Testkontext nur auf die Web-Schicht für den HelloController und spart Service- und Datenbank-Beans aus.
2
mockMvc.perform(MockMvcRequestBuilders.get("/api/hello"))
Simuliert das Senden einer HTTP-GET-Anfrage an den Endpunkt '/api/hello'.
3
.andExpect(MockMvcResultMatchers.status().isOk())
Prüft, ob der vom Controller zurückgegebene HTTP-Statuscode dem Wert 200 OK entspricht.