我正在为一个方法编写一个JUnit
测试用例,该方法使用FileWriter
创建一个文件,但该文件物理上不存在。我使用PowerMockito
来模拟File
对象,而不创建真正的文件。我的测试通过了,但它仍然在项目的上下文根目录中创建了一个名为Mock for file,hashCode
的文件。有没有办法避免创建这个文件?还有一些类似的问题,但不太清楚为什么会发生这种情况。因此,在调试时,我发现当代码到达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
-这是执行实际文件写入的