PowerMockIo.whenNew не приводит к возвращению смоделированного объекта, даже когда используются @RunWith @PrepareForTest - PullRequest
0 голосов
/ 13 февраля 2020

Конструктор Mock of File не работает, когда я отлаживаю свой тест. Я все еще получаю реальный экземпляр File вместо поддельного объекта. что я пропускаю?

Class MyClass {

    void methodToTest() {
        File file = new File(rootPath);
        File[] files = file.listFiles();
        ...
    }

}


@RunWith(PowerMockRunner.class)
@PrepareForTest(MyClass.class)
Class MyClassTest {
    void myTestMethod() {
        File[] mockedFiles = new File[1];
        File file0 = Mockito.mock(File.class);
        doReturn("123.zip.").when(file0).getName();
        mockedFiles[0] = file0;

        File rootFile = Mockito.mock(File.class);
        String rootPath = "\\home";

        //This line does not seem to work
        whenNew(File.class).withParameterTypes(String.class).withArguments(rootPath).thenReturn(rootFile
    );
        doReturn(mockedFiles).when(rootFile).listFiles();
    ...

        new MyClass().methodToTest();
    ...
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...