我想利用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)中,我打开了项目属性,并将所有的JAR添加到构建路径.我还尝试将整个解压缩的powermockito文件夹添加到我的环境vars classpath中,然后只是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