我想知道如何测试post方法,所以我正在阅读这篇文章,测试如下:
@Test
public void createEmployeeAPI() throws Exception
{
mvc.perform( MockMvcRequestBuilders
.post("/employees")
.content(asJsonString(new EmployeeVO(null, "firstName4", "lastName4", "email4@mail.com")))
.contentType(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON))
.andExpect(status().isCreated())
.andExpect(MockMvcResultMatchers.jsonPath("$.employeeId").exists());
}
public static String asJsonString(final Object obj) {
try {
return new ObjectMapper().writeValueAsString(obj);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
我不明白这一行代码的用途和具体用途:
.content(asJsonString(new EmployeeVO(null, "firstName4", "lastName4", "email4@mail.com"))) content(String content)
根据文件:
“将请求正文设置为utf-8字符串。如果提供了内容,并且contenttype(mediatype)设置为application/x-www-form-urlencoded,则将解析内容并用于填充请求参数Map。”
1条答案
按热度按时间smdncfj31#
我不明白这行代码的用途和具体用途:.content(asjsonstring(new employeevo(null,“firstname4”,“lastname4”,”email4@mail.com")))
假设您的restapi需要一个带有json主体的post请求。
方法
content
需要字符串和asJsonString
使用jackson库中的helper objectmapper从employeevo对象返回json字符串。