Power mockito проверяет статические вызовы реальным методом - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь убедиться, что статический метод никогда не вызывался при тестировании служебного метода с powerMockito 1.6.4

Я следовал Этот ответ , чтобы сделать то же самое.

мой код следующий.

@RunWith ( PowerMockRunner.class)
@PrepareForTest ( MyClass.class)
@PowerMockIgnore ( "javax.net.ssl.*")
public class SomeTests
{
 @Test
    public void testMyMethodIsNotCalled() throws Exception
    {
        PowerMockito.mockStatic(MyClass.class);
        underTest.testMethod();
        PowerMockito.verifyStatic(Mockito.never());
        MyClass.myMethod(Mockito.any());
    }
}

Проблема, с которой я сейчас сталкиваюсь, заключается в том, что MyClass.myMethod(Mockito.any()); вызывает реальное myMethod и выдает исключение nullPointerException.

Я предполагаю, что MyClass.myMethod(Mockito.any()); работает с PowerMockito.verifyStatic(Mockito.never());, чтобы указать статический метод для проверки.

Я что-то упустил?

1 Ответ

1 голос
/ 07 ноября 2019

вы должны также смоделировать поведение статического метода

т.е. что-то вроде этого

PowerMockito.mockStatic(NameOfClass.class);
expect( NameOfClass.nameOfMethod((URL)Mockito.any(),Mockito.anyString())).andReturn(actualOutput);

см. Метод макета с параметрами

...