unit-testing - Powermock 在使用 JUnit 5 时抛出 ClassNotPreparedException

标签 unit-testing mockito powermock junit5 junit-jupiter

我有一个示例测试类,我想在其中模拟一个静态类。我的 build.gradle 就像

testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.2.0'
testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-params', version: '5.2.0'
testRuntime group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.2.0'
testRuntime("org.junit.platform:junit-platform-launcher:1.1.1")

testCompile group: 'org.powermock', name: 'powermock-api-mockito2', version: '2.0.0-beta.5'
testCompile group: 'org.mockito', name: 'mockito-core', version: '2.21.0'
testCompile group: 'org.mockito', name: 'mockito-junit-jupiter', version: '2.21.0'`

当我尝试我的测试用例时

@ExtendWith(MockitoExtension.class)
@PrepareForTest(MyUtil.class)
public class MyTest {

@Test
public void shouldCheckIfSyncTimeIsAboveThreshold() {
    mockStatic(MyUtil.class);
    when(MyUtil.getValue()).thenReturn(5));
 }

但是当我运行它的时候,我得到了异常

org.powermock.api.mockito.ClassNotPreparedException:
The class MyUtil not prepared for test

有什么办法可以达到同样的效果

最佳答案

MockitoExtension 不支持 Powermock。

因此,没有注册的扩展可以处理 @PrepareForTest(MyUtil.class)

有关如何使用 Powermock 的详细信息,请访问 project webpage .

关于unit-testing - Powermock 在使用 JUnit 5 时抛出 ClassNotPreparedException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51779581/

相关文章:

unit-testing - Grails域映射通过 “none”无法在单元测试中使用

java - Mockito 测试 - 上下文对象为 null 异常

unit-testing - PowerMockito 在模拟私有(private)方法以测试公共(public)方法时返回 null

unit-testing - 使用 PowerMock 在 Kotlin 中模拟包级函数

java - 需要但未调用 - 从带有谓词参数的另一个静态方法调用静态方法时 Powermock 出错

java - 如何验证父类的 super.method() 的调用?

java - 如何在 jOOQ 的 MockDataProvider 中使用示例数据创建自定义记录?

Python 相当于 ruby​​ rspec 的 "skip"和 "pending"

java - 如何使用 spring 和mockito 获取被测对象的字段

java - 如何抑制构造函数中的私有(private)方法调用?