Ich mag einen einfachen Test für einen meiner @RestController
schreiben und behaupten, dass der Eingang @RequestBody
hat zum PersonDTO
richtig zugeordnet wurde:Wie testet man @RequestBody eines @RestControllers mit Junit?
@RestController
public class PersonServlet {
@PostMapping("/person")
public PersonRsp find(@RequestBody PersonDTO dto) {
//business logic
}
}
public class PersonDTO {
private String firstname, lastname;
}
Frage: Wie kann ich einen JSON
Anforderungstext zu diesem Servlet schicken. Und mehr inspizieren die PersonDTO
Felder, die alle richtig eingestellt wurden?
Es ist wahrscheinlich ähnlich, aber ich weiß nicht, wie man den geparsten DTO inspiziert/spioniert?
@RunWith(SpringRunner.class)
@WebMvcTest(PersonSerlvet.class)
public class PersonTests {
@Autowired
private MockMvc mvc;
@Test
public void testExample() throws Exception {
this.mvc.perform(get("/person"))
.andExpect(status().isOk());
}
}
@Duplicate Marker: Dies ist kein Duplikat der verknüpften Frage (die im Begriff ist, wie die Antwort Körper Zeichenfolge zu lesen). Ich frage eigentlich nach Anfrage Körper testen.
¿mit einem Logger? –
Ich glaube nicht, Validierung der Logger-Ausgabe ist eine gute Einheit Test Assertion! – membersound
In Fack fragen Sie nicht nach einem Komponententest, Sie möchten einen Integrationstest durchführen. Wenn Sie die Eingabe in einem Test testen und nicht für die Produktion ändern möchten, können Sie einen Scheinappender oder einen Methodenabfanger verwenden. –