Testng PowerMockito不工作:-java.lang.NoClassDefFoundError:org/mockito/internal/creation/CglibMockMaker
我正在尝试使用powermockito模拟CouchbaseCluster.create()的静态方法。这是我的测试课Testng PowerMockito不工作:-java.lang.NoClassDefFoundError:org/mockito/internal/creation/CglibMockMaker,testng,couchbase,powermockito,Testng,Couchbase,Powermockito,我正在尝试使用powermockito模拟CouchbaseCluster.create()的静态方法。这是我的测试课 @PrepareForTest(CouchbaseCluster.class) public class IAMKafkaConsumerTest extends PowerMockTestCase { private IAMKafkaConsumer iamKafkaConsumer; private CouchbaseCluster mockCou
@PrepareForTest(CouchbaseCluster.class)
public class IAMKafkaConsumerTest extends PowerMockTestCase {
private IAMKafkaConsumer iamKafkaConsumer;
private CouchbaseCluster mockCouchbaseCluster;
private Bucket mockBucket;
@ObjectFactory
public IObjectFactory getObjectFactory() {
return new org.powermock.modules.testng.PowerMockObjectFactory();
}
@Test
public void happyPath()
{
PowerMockito.mockStatic(CouchbaseCluster.class);
}
}
我的项目pom包括以下依赖项:
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-testng</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-testng-agent</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<scope>test</scope>
</dependency>
cglib
cglib
测试
org.mockito
莫基托所有
测试
org.powermock
powermock模块testng
测试
org.powermock
powermock模块测试代理
测试
org.powermock
powermock api mockito
测试
org.powermock
powermock-module-junit4
测试
org.testng
testng
测试
当我通过TestNG框架运行测试时,我得到了这个错误日志
java.lang.NoClassDefFoundError:
org/mockito/internal/creation/CglibMockMaker
位于org.powermock.api.mockito.internal.mockmaker.PowerMockMaker.(PowerMockMaker.java:40)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:526)
位于java.lang.Class.newInstance(Class.java:379)
在org.mockito.internal.configuration.plugins.PluginLoader.loadImpl(PluginLoader.java:61)上
位于org.mockito.internal.configuration.plugins.PluginLoader.loadPlugin(PluginLoader.java:24)
当与mockito 1.10.9一起使用时,PowerMockito 1.5.X版本被破坏了 因此,将版本更改为1.6.X对我来说很有用。 这个链接帮助了我
除了Puneet-answer之外,您的项目中还可能有多个版本的powermock-lib,特别是当它是一个大型版本时。在我的例子中,我通过项目文件搜索了“powermock”关键字,找到了powermock-mockito-release-full-1.6.1-full.jar和powermock-api-mockito-1.7.0.jar,它们都有PowerMockMaker类。因此,删除不兼容的1.6.1版本解决了这个问题。它不会解决这个问题。我升级了,但问题没有解决