我正在尝试模拟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/

10-09 05:07