我正在使用 mockito-all-1.9.5-rc1.jar
和 powermock-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.jar
和 powermock-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/