【问题标题】:"Mockito cannot mock this class" error even if I am using powermockito to mock the class即使我使用 powermockito 模拟课程,“Mockito 无法模拟此类”错误
【发布时间】:2020-05-23 07:52:24
【问题描述】:

我有最后一堂课

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 类。 这个类在调用final类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); 
    }
}

案例在 C 类的方法 D 中失败。
我收到此错误 Mockito 无法模拟此类:A.

【问题讨论】:

    标签: java junit4 powermockito final-class


    【解决方案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>
    

    【讨论】:

    • 我试过并且对我有用:我没有得到你的例外。异常是否改变?如果是,你能补充更多细节吗?
    • 添加了我的依赖,检查它们。我的代码运行良好。
    • 具有相同的依赖关系:)
    • 我唯一的想法是您发布的代码与您实际拥有的代码无法比较
    • 问题已解决,谢谢。我在 system.properties 中指定了错误的路径,这就是它失败的原因
    猜你喜欢
    • 1970-01-01
    • 2018-09-05
    • 1970-01-01
    • 2017-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多