Что на самом деле означает @PrepareForTest в PowerMock? - PullRequest
2 голосов
/ 03 июня 2019

Что на самом деле означает аннотация @PrepareForTest в PowerMockito?

Что следует размещать там, кроме классов, которые имеют статические методы?

1 Ответ

3 голосов
/ 03 июня 2019

Эта аннотация сообщает PowerMock (ito), что перечисленные классы необходимо будет обрабатывать на уровне байтового кода.

Вам необходимо «подготовиться к тестированию» всех этих классов X, из которых вы хотите

  • макет статический метод (по X)
  • усиление контроля над вызовами new(), используемыми в другом классе X
  • получить контроль над приватными методами (что вы делаете, используя шпион и PowerMockito.when(spy, "privateMethodNameAsString").then...

Другими словами: чтобы высмеивать X.doStatic(), вам нужно подготовить X. Чтобы контролировать new Y, вы должны подготовить класс X, в котором содержит это new() утверждение.

...