问题描述
我有一个单元测试,我需要在其中模拟静态方法以及模拟传统 Java 服务对象上的一些方法。
我使用 powermockito 作为模拟框架。
测试的顶部看起来像这样
@RunWith(powermockrunner.class)
@PrepareForTest({ConfigurationManager.class})
public class PolicyServiceClonePolicyTest {
@Rule
public Environmentvariables environmentvariables = new Environmentvariables();
@Rule
public ExpectedException expectedException = ExpectedException.none();
@InjectMocks
public Service1 uut;
@Mock
public Service2 srv2;
在我拥有的其中一种测试方法中
when(srv2.findById(1L)).thenReturn(Optional.of(dbrow));
如果我在没有 @RunWith(powermockrunner.class)
的情况下运行测试,则模拟工作正常。
如果我将 @RunWith(powermockrunner.class)
放在类的顶部,那么模拟将不起作用。
我的 pom.xml 中有以下内容
<powermock.version>2.0.2</powermock.version>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito2</artifactId>
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>
当我引入 @RunWith(powermockrunner.class)
时,为什么我的模拟无法触发
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)