我试图模拟一个MultipartFile,我想用我在测试中创建的流来创建模拟
我也试过用一个文件,但运气不好。
FileInputStream stream = new
FileInputStream("MOCK_file.xlsm");
MultipartFile f1 = new MockMultipartFile("file1",stream);
MultipartFile[] files = {f1};
return files;
字符串
我得到一个fileNotFoundException。我应该把我的文件放在我的Maven项目中的什么地方,这样单元测试就可以找到这个文件了?
--或者--
如何在代码中创建流而不使用文件?
3条答案
按热度按时间z6psavjg1#
更好的是,您可以只模拟
MultipartFile
,并且根本不需要InputStream
。为此,您只需要执行
mock(MultiPartFile.class)
,然后定义每个函数将执行的操作例如,如果您使用名称
字符串
这样,您就不必为实际文件和意外响应而烦恼,因为您将定义它们
cqoc49vn2#
如何在代码中创建流而不使用文件?
您可以使用
ByteArrayInputStream
注入模拟数据。对于少量数据来说,这非常简单:字符串
否则,你需要弄清楚你的代码是从哪个目录运行的,这取决于它是如何运行的。为了帮助你,你可以打印
user.dir
系统属性,它告诉你当前的目录:型
或者,您可以使用完整路径而不是相对路径来查找文件。
uoifb46i3#
把文件放进去
字符串
从JUnit类中读取:
型