PowerMockRunner 导致 Mockito Mocks 失败

问题描述

我有一个单元测试,我需要在其中模拟静态方法以及模拟传统 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 (将#修改为@)