У меня проблема с макетом, когдаNew (File.class) с использованием PowerMockito. Вот мой метод, который я хочу, чтобы проверить:powerMockito mock Файловые объекты
public void foo() {
File tmpFile = new File("Folder");
if (!tmpFile.exists()) {
if (!configFolder.mkdir()) {
throw new RuntimeException("Can't create folder");
}
}
File oneFileInFolder = new File(tmpFile, "fileOne.txt");
if (oneFileInFolder.exists()){
//do something
}
}
Вот тестовый код, который я написал:
static File mockFile;
@Before
public void setUp() throws Exception {
//....some code
mockFolder = mock(File.class);
when(mockFolder.getPath()).thenReturn("Folder");
when(mockFolder.exists()).thenReturn(true);
whenNew(File.class).withParameterTypes(String.class).withArguments(anyString()).thenReturn(mockFolder);
//...some code
}
Но когда я отлаживать TestCase, я все еще вижу реальную папку, созданную в моем PWD. Я не хочу создавать папки, когда я запускаю свои тестовые файлы. Есть идеи?
Бросьте 'verify (mockFolder) .mkdir()' и посмотрите, что произойдет - может быть, ваш макет не используется? Или, может быть, вы настроили Мокито на настоящие методы? В этом примере вы никогда не закрывали 'mkdir()'. –