PowerMock Mockito: как смоделировать все статические методы? - PullRequest
5 голосов
/ 31 января 2011

Нужно ли нам высмеивать все статические методы класса при использовании PowerMock (с Mockito)? Я имею в виду, предположим, у нас есть:

class MockMe {
   public static MockMe getInstance(){
              //return new Instance via complex process;
   }

   public static List<X> anotherStaticMethod(){
      // does xyz
   }
}

Мой вопрос, если мне нужно смоделировать метод getInstance, необходимо ли также смоделировать "anotherStaticMethod"?

Версия PowerMock: 1.3, версия Mockito: 1.8

Ответы [ 2 ]

6 голосов
/ 01 февраля 2011

Нет, вы можете использовать частичное издевательство, используя шпион в PowerMockito. Или вы можете использовать API для заглушки:

stub(method(MockMe.class, "getInstance")).toReturn(myMockMeInstance);
0 голосов
/ 28 ноября 2014

Насмешливый статический метод Как издеваться и заглушки:

Добавить @PrepareForTest на уровне класса.

@PrepareForTest(Static.class) // Static.class contains static methods

Вызовите PowerMockito.mockStatic(), чтобы смоделировать статический класс (используйте PowerMockito.spy (class), чтобы смоделировать конкретный метод):

PowerMockito.mockStatic(Static.class);

Просто используйте Mockito.when(), чтобы настроить ожидание:

Mockito.when(Static.firstStaticMethod(param)).thenReturn(value);
...