Java:单元测试中的模拟多部分文件

标签 java junit stream

我正在尝试模拟 MultipartFile,并且想使用我在测试中创建的流来创建模拟

我也尝试过使用一个文件,但运气不佳。这是我到目前为止所尝试过的

FileInputStream stream = new 
FileInputStream("MOCK_file.xlsm");
MultipartFile f1 = new MockMultipartFile("file1",stream);
MultipartFile[] files = {f1};
return files;

我收到一个 fileNotFoundException。我应该将文件放在 Maven 项目中的什么位置以便单元测试可以找到该文件?

-- 或 --

如何在代码中创建流而不使用文件?

最佳答案

更好的是,您可以仅模拟 MultipartFile,并且根本不需要 InputStream

为此,您只需执行mock(MultiPartFile.class),然后定义每个函数将执行的操作

例如,如果您使用名称

final MultipartFile mockFile = mock(MultipartFile.class);
when(mockFile.getOriginalFilename()).thenReturn("CoolName");

这样您就不必担心实际文件或意外响应,因为您将定义它们

关于Java:单元测试中的模拟多部分文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58207609/

相关文章:

java - 如何使用Android Studio实现自动建议UI?

android - uiatomator包smack不存在报错

c++ - 使用 Qt 录制网络广播流

java - 集合的通用类型子集合

java - NullPointerException Location.getLongitude()

java - 基于主查询 JPA Criteria API 创建子查询

dart - 在 Dart 中保存流的最后一个发射值

java - Junits 的 Guice 和 Mockto

java - JUnit AssertEquals() 由于数组上存在额外空格而失败

java - 在极其庞大的数据集中查找重复项