Ошибка «Mockito не может издеваться над этим классом», даже если я использую powermockito, чтобы издеваться над классом - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть последний класс

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. Этот класс вызывает метод stati c для последнего класса A

public class B {
    public boolean methodC() {
       if(methodB()) {
         C.methodD();
       }
    }
}

класс C снова является последним классом

public final class C {

    public static void methodD() {
        //does some processing
    }
}

Я издеваюсь над этим последним классом A следующим образом:

public class TestB {

    public void testMethodC() {
        PowerMockito.mock(A.class); 
    }
}

Сбой в методе methodD класса C. Я получаю эту ошибку Mockito не может издеваться над этим классом: A.

1 Ответ

0 голосов
/ 07 февраля 2020

Вам нужны аннотации:

@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>
...