PowerMock Mockito: как смоделировать все статические методы?

Нужно ли нам издеваться над всеми статическими методами класса при использовании 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


person anergy    schedule 31.01.2011    source источник


Ответы (2)


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

stub(method(MockMe.class, "getInstance")).toReturn(myMockMeInstance);
person Johan    schedule 01.02.2011

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

Добавьте @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);
person Nguyen Pham    schedule 28.11.2014