我正在尝试模拟MultipartFile,我想使用在测试中创建的流来创建模拟
我也尝试过运气不佳的文件。到目前为止,这是我尝试过的
FileInputStream stream = new
FileInputStream("MOCK_file.xlsm");
MultipartFile f1 = new MockMultipartFile("file1",stream);
MultipartFile[] files = {f1};
return files;
我得到了fileNotFoundException。我应该将文件放在Maven项目中的什么位置,以便单元测试可以找到该文件?
- 要么 -
如何不使用文件就用代码创建流?
最佳答案
如何不使用文件就用代码创建流?
您可以使用ByteArrayInputStream
注入模拟数据。对于少量数据来说非常简单:
byte[] data = new byte[] {1, 2, 3, 4};
InputStream stream = new ByteArrayInputStream(data);
否则,您需要弄清楚代码从哪个目录运行,这取决于它的运行方式。为此,您可以打印
user.dir
系统属性,该属性会告诉您当前目录:System.out.println(System.getProperty("user.dir"));
或者,您可以使用完整路径,而不是相对路径来查找文件。
关于java - Java:在单元测试中模拟multipartfile,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58207609/