mem*_*und 5 java junit spring spring-mvc spring-test
我有一个简单的junit测试,用于验证servlet端点的响应.
问题:我想以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?
}
}
Run Code Online (Sandbox Code Playgroud)
小智 6
你可以像这样反序列化它:
String json = rt.getResponse().getContentAsString();
Person person = new ObjectMapper().readValue(json, Person.class);
Run Code Online (Sandbox Code Playgroud)
你也可以@Autowire ObjectMapper
| 归档时间: |
|
| 查看次数: |
2387 次 |
| 最近记录: |