被测试类:
public ResponseEntity<String> save(@RequestBody DataSink ds,@RequestParam("file") MultipartFile file){
@RequestBody
表示body的数据。
@RequestParam("file")
表示你上传的文件已经文件名字。
测试类
mvc.perform(MockMvcRequestBuilders.fileUpload(url)
.file("file",content)
.accept(MediaType.APPLICATION_JSON).characterEncoding("UTF-8")
.contentType(MediaType.APPLICATION_JSON)
.content(data))
.andExpect(status().isOk())
.andDo(document("DataSink/save"));
MockMvcRequestBuilders.fileUpload
返回的是一个MockMultipartHttpServletRequestBuilder
类,这个类继承自MockHttpServletRequestBuilder
。这个两个类的实例化工厂都是通过MockMvcRequestBuilders
.
MockMultipartHttpServletRequestBuilder
方法file
,其参数输入上传文件的名字与字节数组。