sti*_*vlo 7 java spring spring-mvc
我有一个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);
Run Code Online (Sandbox Code Playgroud)
如何进行单元测试?我知道我可以创建一个MockHttpServletRequest,但我不知道如何传递一个或多个文件.
MockHttpServletRequest request = new MockHttpServletRequest("POST",
"/classified/38001/dealer/54/upload?token=dfak241adf");
Run Code Online (Sandbox Code Playgroud)
我建议稍微更改方法签名,使上传的文件成为普通参数(类型(不是)):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);
Run Code Online (Sandbox Code Playgroud)
然后你可以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);
Run Code Online (Sandbox Code Playgroud)
如果您不想更改方法签名,则可以使用MockMultipartHttpServletRequest.
它有一种方法addFile(MultipartFile file).当然,所需的参数可以是a MockMultipartFile.
| 归档时间: |
|
| 查看次数: |
14490 次 |
| 最近记录: |