使用 Mockito 和 PowerMockito 模拟文件

Mocking a File using Mockito and PowerMockito

我正在为使用 FileWriter 创建文件但该文件实际上不存在的方法编写 JUnit 测试用例。我正在使用 PowerMockito 模拟 File 对象而不创建真实文件。我的测试通过了,但它仍然在项目的上下文根目录中创建了一个名为 Mock for file,hashCode 的文件。有没有办法避免创建这个文件?有一些类似的问题,但不是很清楚为什么这是 happening.So,在调试时我发现当代码到达 new FileWriter 时,文件被创建。

谢谢,

JUnit 测试:

@Test
public void testCreateCSVFile() throws Exception {
    File mockFile = Mockito.mock(File.class);
    PowerMockito.whenNew(File.class).withAnyArguments().thenReturn(mockFile);
    rest of the test...
}

正在测试的方法:

public void createCSVFile(List<IUiIntegrationDto> intgList, String fileName) throws Exception { 
     FileWriter fileWriter = new FileWriter(fileName);
     rest of the code...
}

你在嘲笑错误的领域。您需要模拟 FileWriter - 这是执行实际文件写入的那个