我建议稍微更改方法签名,以使上传的文件成为普通参数(类型为MultipartFile http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/multipart/MultipartFile.html (not CommonsMultipartFile http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/multipart/commons/CommonsMultipartFile.html)):
@RequestMapping(value = "/classified/{idClassified}/dealer/{idPerson}/upload",
method = RequestMethod.POST)
@ResponseBody
public final String uploadClassifiedPicture(
@PathVariable int idClassified,
@PathVariable int idPerson,
@RequestParam String token,
@RequestParam MultipartFile content);
然后你可以使用MockMultipartFile http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/mock/web/MockMultipartFile.html在你的测试中:
final String fileName = "test.txt";
final byte[] content = "Hallo Word".getBytes();
MockMultipartFile mockMultipartFile =
new MockMultipartFile("content", fileName, "text/plain", content);
uploadClassifiedPicture(1, 1, "token", mockMultipartFile);
如果您不想更改方法签名,那么您可以使用MockMultipartHttpServletRequest http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/mock/web/MockMultipartHttpServletRequest.html反而。
它有一个方法addFile(MultipartFile file) http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/mock/web/MockMultipartHttpServletRequest.html#addFile%28org.springframework.web.multipart.MultipartFile%29。当然,所需的参数可以是MockMultipartFile
.