Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何调用Spring控制器';JUNIT测试用例中带有@RequestBody的方法_Java_Spring Mvc_Junit - Fatal编程技术网

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();