如何使用MockHttpServletRequest对文件上传进行单元测试?

stivlo:

我有一个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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用.env文件通过Jest进行单元测试

如何使用python unittest对写入文件的函数进行单元测试

如何对文件访问(Java)进行单元测试?

如何使用PropertySource文件进行单元测试?

如何模拟缓冲文件句柄以进行单元测试

如何使用gcov对动态库进行单元测试?

如何使用R的testthat对单个文件进行单元测试?

使用Moq .net Core进行单元测试文件上传

VSCode如何使用es6 mocha单元测试和jsx文件进行调试

对您上传文件的Web API端点进行单元测试

使用Angular中的TypeScript对文件大小进行Jasmine单元测试

如何使用requests_mock对文件上传进行单元测试?

如何对该方法进行单元测试(使用剪贴板和文件系统)?

如何对文件或文档进行单元测试?

使用文件中的数据进行单元测试

角度单元测试:如何对.map()进行单元测试?

如何使用Koin对MVVM进行单元测试?

如何对失败的文件删除进行单元测试?

AngularJS-单元测试文件上传

如何在Struts单元测试中测试文件上传?

单元测试文件上传失败

如何进行文件读取功能的单元测试?

使用Junit进行单元测试中保存文件的路径

使用Jasmine进行单元测试时,如何要求没有“ sub-requires”的文件?

对使用boto3将文件上传到S3的功能进行单元测试

如何对使用其他经过单元测试的功能进行单元测试?

使用 redux-mock-store 进行单元测试 - 如何使此单元测试通过?

如何使用 IMappingAction 使用 AfterMap 对 AutoMapper 配置文件进行单元测试

如何使用 gorm 进行单元测试