我想使用 Powermock 和 Mockito 来模拟一些静态方法调用。我已尽我所能遵循 SO 以及 PowerMock入门和MockStatic页面的说明和示例,但我还没有完成 mockStatic() 调用。
当我从我的测试类中调用 mockStatic(foo.class) 时,我得到了例外:
java.lang.NoClassDefFoundError: org/Mockito/mock/MockName
at org.powermock.api.mockito.PowerMockito.mockStatic(PowerMockito.java:70)
at ...my test class method call...
我确定这是一个设置问题,因为我发现用于设置的术语非常混乱。我确实从 PowerMock下载中获取了 Mockito Zip 。在 Eclipse (3.5.2) 中,我打开了项目属性并将所有的 Jar 添加到构建路径中。我还尝试将整个解压缩的 powermockito 文件夹添加到我的环境 vars 类路径中,然后只添加 powermockito jar,特别是当它不起作用时。
根据 powermock 说明,我的测试类的类级别也有这些注释:
@RunWith(PowerMockRunner.class)
@PrepareForTest(ApplicationContextLoader.class)
还有这些powermock特定的进口:
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
对于那些以前使用过 PowerMockito 的人来说,即使只是指向正确方向的指针,或者需要检查的东西也会非常有帮助。我很难看到我的设置与我所看到的使用相同语法的帖子有何不同 - 据我所知 - 相同的语法。