Я знаю, как имитировать статические методы из класса с помощью PowerMock.
Но я хочу имитировать статические методы из нескольких классов в тестовом классе с помощью JUnit и PowerMock.
Может ли кто-нибудь сказать мне, можно ли это сделать и как это сделать?
Ответы:
Просто сделайте
@PrepareForTest({Class1.class,Class2.class})
для нескольких классов.источник
@RunWith(PowerMockRunner.class)
на уровне класса@Rule public PowerMockRule rule = new PowerMockRule();
@PrepareForTest(Class1::class, Class2::class))
@PrepareOnlyThisForTest
вместо@PrepareForTest
. Последний также изменяет суперклассы, что обычно не требуется.и т.д...
источник
PowerMock 1.6.5
проблем с использованием@PrepareForTest
на уровне метода (у меня работает только на уровне класса)В java с powermock / junit используйте
@PrepareForTest({})
столько статических классов, сколько хотите, как array ({}
).Я использовал powermock в scala / junit, так как у scalatest нет интеграции с powermock.
источник
Если вы используете kotlin, синтаксис следующий
@PrepareForTest(ClassA::class, ClassB::class)
источник