我正在編寫一個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