MockMVC |需要传递JSON文件作为输入

时间:2017-09-23 21:11:33

标签: spring-boot mockito

我想将输入文件传递给MockMVC执行语句。请在下面找到代码段:

@Test
public void test() throws Exception {

   this.mockMvc.perform(post("/tax_rates/v1/quotations")
           .contentType(MediaType.APPLICATION_JSON_UTF8).pathInfo("/src/main/resources/input.json"))
           .andExpect((ResultMatcher) status().is2xxSuccessful());

}

当我尝试使用pathInfo变量时,我得到如下错误:

  

HttpMessageNotReadableException:缺少必需的请求正文:

我认为这意味着有效载荷没有通过?

任何建议都会对我有帮助。

此致 苏尼

1 个答案:

答案 0 :(得分:1)

我们可以将json输入作为内容传递:

ObjectMapper mapper=new ObjectMapper();
String jsonString=mapperwriteValueAsString(mapper.readValue(new File("path/to/file",Object.class));
 this.mockMvc.perform(post("/tax_rates/v1/quotations")
           .contentType(MediaType.APPLICATION_JSON_UTF8).content(jsonString))
           .andExpect(status().is2xxSuccessful());

如果要将MultipartFile作为输入传递。这是链接:

Using Spring MVC Test to unit test multipart POST request