MockitoInvocationHandler类的NoClassDefFoundError

sur*_*ana 7 java junit4 mockito powermock

我正在使用mockito-all-1.9.5-rc1.jarpowermock-mockito-1.4.12-full.jar.当我在非final类中运行这个简单的单元测试来模拟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());
    }

}
Run Code Online (Sandbox Code Playgroud)

当我跑的时候,我得到了 java.lang.NoClassDefFoundError: org/mockito/internal/MockitoInvocationHandler Caused by: java.lang.ClassNotFoundException: org.mockito.internal.MockitoInvocationHandler

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

Bri*_*ice 15

Mockito 1.9.5-rc1必须在内部进行重构才能允许第三方模拟制造商.MockitoInvocationHandler是Mockito内部的一部分(正如包装名称所示)直到Mockito 1.9.0.

由于这些变化,目前的一些较老的版本Powermock发布截至今日不与最新版本的Mockito兼容.

避免嘲弄/剔除决赛或静止的另一个原因;)

希望有助于干杯,