我有一个Spring(3.0)控制器,该方法具有HttpServletRequest
作为参数之一的方法,因为它可以处理(多个)文件上传。
@RequestMapping(value = "/classified/{idClassified}/dealer/{idPerson}/upload",
method = RequestMethod.POST)
@ResponseBody
public final String uploadClassifiedPicture(
@PathVariable int idClassified,
@PathVariable int idPerson,
@RequestParam String token,
HttpServletRequest request);
如何进行单元测试?我知道我可以创建一个MockHttpServletRequest
,但是我不知道如何将一个或多个文件传递给它。
MockHttpServletRequest request = new MockHttpServletRequest("POST",
"/classified/38001/dealer/54/upload?token=dfak241adf");
我建议稍微更改方法签名,以使上传的文件成为普通参数(类型为(not )):MultipartFile
CommonsMultipartFile
@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
在测试中使用a :
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
。
它有一种方法addFile(MultipartFile file)
。当然,所需的参数可以是MockMultipartFile
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句