Ошибка "Mockito не может издеваться над этим классом", даже если я использую powermockito для имитации класса
У меня последний класс
public final class A {
private static final Set<String> B = methodA();
private static Set<String> methodA() {
//does some processing and
//returns a set
}
public static boolean methodB() {
//does some processing and
//returns a boolean
}
}
Тестируемый класс - это класс B. Этот класс вызывает статический метод последнего класса A
public class B {
public boolean methodC() {
if(methodB()) {
C.methodD();
}
}
}
Класс C снова последний класс
public final class C {
public static void methodD() {
//does some processing
}
}
Я издеваюсь над этим последним классом А вот так
public class TestB {
public void testMethodC() {
PowerMockito.mock(A.class);
}
}
Случай не работает внутри метода D класса C.
Я получаю эту ошибку, Mockito не может имитировать этот класс: A.
1 ответ
Вам понадобятся аннотации:
@RunWith(PowerMockRunner.class)
@PrepareForTest({A.class})
public class TestB {
public void testMethodC() {
PowerMockito.mock(A.class);
}
}
Мои зависимости:
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito2</artifactId>
<version>2.0.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>2.0.2</version>
<scope>test</scope>
</dependency>