java - MockitoInvocationHandler 类的 NoClassDefFoundError

标签 java junit4 mockito powermock

我正在使用 mockito-all-1.9.5-rc1.jarpowermock-mockito-1.4.12-full.jar。 当我运行这个简单的单元测试以模拟非最终类中的 final方法时。

import static org.junit.Assert.assertEquals;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;

@RunWith(PowerMockRunner.class)
@PrepareForTest(ABC.class)
public class ABCTest {

    @Test
    public void finalCouldBeMock() {
        final ABC abc = PowerMockito.mock(ABC.class);
        PowerMockito.when(abc.myMethod()).thenReturn("toto");
        assertEquals("toto", abc.myMethod());
    }

}

当我运行它时,我得到了 java.lang.NoClassDefFoundError: org/mockito/internal/MockitoInvocationHandler 引起:java.lang.ClassNotFoundException:org.mockito.internal.MockitoInvocationHandler

当我在 mockito-all-1.9.5-rc1.jarpowermock-mockito-1.4.12-full.jar 中搜索类 MockitoInvocationHandler。我找不到任何。 需要帮助解决这个问题!谢谢

最佳答案

Mockito 1.9.5-rc1 必须在内部进行重构以允许第三方 mock maker。在 Mockito 1.9.0 之前,MockitoInvocationHandler 是 Mockito 内部结构的一部分(如包名所示)。

由于这些更改,当前一些旧版本的 Powermock 版本截至今天与最新的 Mockito 版本不兼容。

避免模拟/ stub final 或静态的另一个原因;)

希望对你有帮助 干杯,

关于java - MockitoInvocationHandler 类的 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12157559/

相关文章:

java - 如何提高 recyclerview 中的图像滚动性能(应用程序在 recyclerview 中滚动时滞后)?

java - 为什么 Stream 没有 toList() 方法?

java - Eclipse、Java、Junit4,我想对 jar 文件进行黑盒测试。设置时需要一些帮助

java - 在 Mockito doReturn 方法中指定传递给方法的特定枚举

java - Mockito:mock-maker-inline Android GcmNetworkManager mock java.lang.VerifyError Google Play Services v11.0.2

java - Eclipselink 合并无法为更改的值生成 UPDATE 语句

java - 在 Java 中如何判断给定值是 float 还是 double?

java - 如何在单元测试中将文本与模板进行匹配

android - 什么会运行 ExampleUnitTest 但找不到 ExampleInstrumentedTest?

java - 使用静态工厂方法创建的对象的模拟行为