我想利用 Powermock 和 Mockito 来模拟一些静态方法调用。我已遵循 SO 以及 PowerMock 的说明和示例入门 https://code.google.com/p/powermock/wiki/GettingStarted and 模拟静态 https://code.google.com/p/powermock/wiki/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下载 https://code.google.com/p/powermock/downloads/list。在 Eclipse (3.5.2) 中,我打开项目属性并将所有 Jars 添加到构建路径中。我还尝试将整个解压的 powermockito 文件夹添加到我的环境变量类路径中,然后在不起作用时仅添加 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 的人来说,即使只是指向正确方向的指针或需要检查的内容也会非常有帮助。我正在努力了解我的设置与我所看到的使用相同语法的帖子有何不同(据我所知)。
可能是Powermock和Mockito的版本不兼容。解决这个问题就不再是问题了。
Mockito PowerMock
1.10.8+ 1.6.2+
1.9.5-rc1 - 1.9.5 1.5.0 - 1.5.6
1.9.0-rc1 & 1.9.0 1.4.10 - 1.4.12
1.8.5 1.3.9 to 1.4.9
1.8.4 1.3.7 & 1.3.8
1.8.3 1.3.6
1.8.1 & 1.8.2 1.3.5
1.8 1.3
1.7 1.2.5
See: https://github.com/powermock/powermock/wiki/Mockito#supported-versions https://github.com/powermock/powermock/wiki/Mockito#supported-versions
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)