我正在编写一个JUnit
测试用例,该方法使用FileWriter
来创建文件,但文件实际上不存在。我正在使用PowerMockito
来嘲笑File
对象而不创建真实文件。我的测试通过了,但仍然在项目的上下文根目录中创建了一个名为Mock for file,hashCode
的文件。有没有办法避免创建这个文件?有一些类似的问题,但不清楚为什么会发生这种情况。所以,在调试时,我发现当代码达到new FileWriter
时,会创建该文件。使用Mockito和PowerMockito嘲笑文件
感谢,
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...
}
将作者传递给方法,而不是名称。 – chrylis
它的工作。我现在传递FileWriter而不是名称,并且不再创建文件。谢谢。 – Jaykumar
只是为了记录:如果您要使用依赖注入来为其测试类提供**文件写入器对象,则不需要转向PowerMock。编写可测试代码的一个核心要点是在生产代码中使用** new **语句(有关详细信息,请参阅https://www.youtube.com/playlist?list=PLD0011D00849E1B79)。 – GhostCat