【发布时间】:2013-10-04 00:57:03
【问题描述】:
我想使用 Powermock 和 Mockito 来模拟一些静态方法调用。我已尽我所能遵循 SO 以及 PowerMock Getting Started 和 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 downloads 中获取了 Mockito Zip。在 Eclipse (3.5.2) 中,我打开了项目属性并将所有的 Jars 添加到构建路径中。我还尝试将整个解压后的 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 的人来说,即使只是指向正确方向的指针,或者需要检查的东西也会非常有帮助。我很难看出我的设置与我所使用的帖子的设置有何不同 - 据我所知 - 相同的语法。
【问题讨论】:
-
您找到解决方案了吗?
-
我不记得了,虽然已经有几年了。我得到了@Walls 的回答,所以这肯定是最有帮助的,没有解决方案。
标签: java eclipse unit-testing junit powermock