4

Testing a spring file upload form, the controlelr signature looks like this

@RequestMapping(value = "upload", method = RequestMethod.POST)
@ResponseBody
public void upload(@RequestParam("file") MultipartFile multipartFile) {}

and the test this

final MockMultipartFile file 
  = new MockMultipartFile("content", "myFile.txt", "text/plain", "hello".getBytes());

MockHttpServletRequestBuilder mockHttpServletRequestBuilder = 
  .fileUpload("/upload/")
  .file(file)
  .accept(MediaType.APPLICATION_JSON);

but I get the aforementioned : Error message = Required MultipartFile parameter 'file' is not present

NimChimpsky
  • 46,453
  • 60
  • 198
  • 311

1 Answers1

11

You named the parameter as "file" and not as "content":

Change:

new MockMultipartFile("content", "myFile.txt", "text/plain", "hello".getBytes());

To:

new MockMultipartFile("file", "myFile.txt", "text/plain", "hello".getBytes());
Beto Neto
  • 3,962
  • 7
  • 47
  • 81