我正在使用mockito-all-1.9.5-rc1.jar
和powermock-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());
}
}
当我跑的时候,我得到了java.lang.NoClassDefFoundError: org/mockito/internal/MockitoInvocationHandler
Caused by: 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版本不兼容。
另一个避免嘲讽/打断词尾或静态语句的原因;)
希望能有所帮助干杯,