Java 如何调用Spring控制器';JUNIT测试用例中带有@RequestBody的方法
我有一个控制器方法Java 如何调用Spring控制器';JUNIT测试用例中带有@RequestBody的方法,java,spring-mvc,junit,Java,Spring Mvc,Junit,我有一个控制器方法 @RequestMapping(method = RequestMethod.POST) @ResponseBody public String uploadFiles(@RequestBody MyModel myModel) {...} 我必须从JUNIT测试用例中调用它 到目前为止,我尝试了不同的方法,其中一些方法如下,它给了我帮助 java.lang.AssertionError:状态应为:但为: 及 我无法在RequestHeader、Reque
@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public String uploadFiles(@RequestBody MyModel myModel) {...}
我必须从JUNIT测试用例中调用它
到目前为止,我尝试了不同的方法,其中一些方法如下,它给了我帮助
java.lang.AssertionError:状态应为:但为:
及
我无法在RequestHeader、RequestParam或PathVariable中传递我的参数。HTTP状态415表示不支持的媒体类型,这意味着控制器没有接收到它期望的请求媒体类型 如果您在JUnit测试用例中设置了
accept(APPLICATION\u JSON\u CHARSET\u UTF\u 8)
,那么您的控制器还应该具有consumes=MediaType.APPLICATION\u JSON\u UTF8\u值作为其@RequestMapping
注释的一部分
编辑:如果您只是专门询问如何将请求主体附加到junit测试中,您可以添加:
result=getMockMvc().perform(post(“/fileUpload”))
.content(“有效负载字符串”)
.contentType(“应用程序/json;字符集=utf-8”)
.accept(MediaType.APPLICATION\u JSON\u UTF8\u值)
.andExpect(状态().isOk())
.andReturn()代码>HTTP状态415表示不支持的媒体类型,这意味着控制器未接收到其预期的请求媒体类型
如果您在JUnit测试用例中设置了accept(APPLICATION\u JSON\u CHARSET\u UTF\u 8)
,那么您的控制器还应该具有consumes=MediaType.APPLICATION\u JSON\u UTF8\u值作为其@RequestMapping
注释的一部分
编辑:如果您只是专门询问如何将请求主体附加到junit测试中,您可以添加:
result=getMockMvc().perform(post(“/fileUpload”))
.content(“有效负载字符串”)
.contentType(“应用程序/json;字符集=utf-8”)
.accept(MediaType.APPLICATION\u JSON\u UTF8\u值)
.andExpect(状态().isOk())
.andReturn()代码>您可以尝试以下方法:
MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(url).contentType(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON).content(jsonContent)).andReturn();
其中url=“/fileUpload”和jsonContent是字符串类型的请求json内容。您可以尝试以下方法:
MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(url).contentType(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON).content(jsonContent)).andReturn();
其中url=“/fileUpload”和jsonContent是字符串类型的请求json内容。是的,现在可以工作了。未设置内容(…)。谢谢,现在开始工作了。未设置内容(…)。谢谢你,谢谢你。你的方法也是正确的。但是我们也可以添加。和expect(status().isOk())
。谢谢@Minh。你的方法也是正确的。但是我们也可以添加.andExpect(status().isOk())
。
MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(url).contentType(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON).content(jsonContent)).andReturn();