java - 即使我使用 powermockito 模拟课程,“Mockito 无法模拟此类”错误
问题描述
我有最后一堂课
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
}
}
我像这样嘲笑最后的A类
public class TestB {
public void testMethodC() {
PowerMockito.mock(A.class);
}
}
该案例在 C 类的方法 D 中失败。
我收到此错误Mockito 无法模拟此类:A。
解决方案
您需要一些注释:
@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>
推荐阅读
- javascript - React 上下文提供程序是否未安装在子组件之前?
- javascript - 使用对象属性的对象数组
- scikit-learn - TfidfVectorizer 如何计算测试数据的分数
- python - Python 仍然抛出异常,我已明确排除
- php - Laravel 无法处理队列模型,但能够处理没有队列的代码
- google-cloud-platform - 从云外部使用 Hadoop 客户端访问 GCS
- javascript - Angular 6 - 材料表 - 获取选定的行值
- xml - 为什么在使用 serde-xml-rs 反序列化 XML 时出现错误“缺少字段”,即使该元素存在?
- amazon-web-services - 用于 AWS EMR 自动集群创建和 pyspark 部署的 Airflow/Luigi
- python - Gmail /主题的python电子邮件模块