MultipartFile 单元测试mock方式
今天修改文件上传校验接口的一个bug,但是流水线加上了增量代码的单元覆盖率检测
且公司的单元测试框架使用的是spock,搜了一下文章比较少
无奈研究了一下MultipartFile的单元测试写法
// 方法声明是这样的
public ValidateVin validateVin(MultipartFile file, Integer platform, String tenantId)
尝试过mock文件,但是各种方法都不可以
我寻思直接服务中放一个真实文件也许可行,试了一下,确实可以
def "validateVin"() {
// MockMultipartFile() 构造函数的第三个参数是contentType, 可以依据自己的需求改,我这里是xlsx文件
setup:
File file = new File("src/test/groovy/com/baidu/controller/vin.xlsx");
MultipartFile multipartFile = new MockMultipartFile("file", "vin.xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", file.getBytes())
//multipartFile 然后就可以将这个对象当参数
}
这里我把文件存到了和测试文件相同目录下
大家可以参考试试看