私は、サーブレットエンドポイントの応答を検証する簡単なjunitテストを行っています。@RestControllerのResponseBodyをMockMvcのjunitテストでオブジェクトとして取得する方法は?
問題:javaオブジェクトPerson
という応答を取得したいが、string/json/xml表現ではない。
これは可能ですか?
@RestController
public class PersonController {
@GetMapping("/person")
public PersonRsp getPerson(int id) {
//...
return rsp;
}
}
@RunWith(SpringRunner.class)
@WebMvcTest(value = PersonController.class)
public class PersonControllerTest {
@Autowired
private MockMvc mvc;
@Test
public void test() {
MvcResult rt = mvc.perform(get("/person")
.param("id", "123")
.andExpect(status().isOk())
.andReturn();
//TODO how to cast the result to (Person) p?
}
}
直接アプローチがないのは良い解決策です。 – membersound
さらに、応答オブジェクトJSONを '.andExpect(content()。json(" {'message': 'ok'} "));などで直接検証できます。 –