无法初始化Mockito [英] Unable to initialize Mockito
问题描述
我正在尝试设置Mockito 2.22并下载了 byte-buddy-1.9.0.jar
,并且在Netbeans 8.2项目中,我已将这两个jar文件JUnit 4.12
和Hamcrest 1.3
添加到测试库中.
I am trying to set up Mockito 2.22 and have downloaded mockito-core-2.22.2.jar
and byte-buddy-1.9.0.jar
and, in the Netbeans 8.2 project, I have added those two jar files, JUnit 4.12
and Hamcrest 1.3
to the test libraries.
当我尝试运行MCVE时:
When I try to run the MCVE:
package com.stackoverflow.test;
import org.junit.Test;
import static org.mockito.Mockito.mock;
public class SimpleMockTest {
public static class A{
public String value(){ return "A"; }
}
@Test
public void testASimpleMock()
{
A mocked = mock( A.class );
}
}
当我尝试运行测试时,出现错误:
When I try to run the test, I get the error:
Could not initialize plugin: interface org.mockito.plugins.InstantiatorProvider2 (alternate: interface org.mockito.plugins.InstantiatorProvider)
java.lang.IllegalStateException
at org.mockito.internal.configuration.plugins.PluginLoader$1.invoke(PluginLoader.java:74)
at com.sun.proxy.$Proxy12.getInstantiator(Unknown Source)
at org.mockito.internal.creation.bytebuddy.SubclassByteBuddyMockMaker.createMock(SubclassByteBuddyMockMaker.java:44)
at org.mockito.internal.creation.bytebuddy.ByteBuddyMockMaker.createMock(ByteBuddyMockMaker.java:25)
at org.mockito.internal.util.MockUtil.createMock(MockUtil.java:35)
at org.mockito.internal.MockitoCore.mock(MockitoCore.java:69)
at org.mockito.Mockito.mock(Mockito.java:1895)
at org.mockito.Mockito.mock(Mockito.java:1804)
at com.stackoverflow.test.SimpleMockTest.testASimpleMock(SimpleMockTest.java:13)
at org.mockito.internal.creation.instance.ObjenesisInstantiator.<init>(ObjenesisInstantiator.java:16)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at org.mockito.internal.configuration.plugins.DefaultMockitoPlugins.create(DefaultMockitoPlugins.java:66)
at org.mockito.internal.configuration.plugins.DefaultMockitoPlugins.getDefaultPlugin(DefaultMockitoPlugins.java:43)
at org.mockito.internal.configuration.plugins.PluginLoader.loadPlugin(PluginLoader.java:67)
at org.mockito.internal.configuration.plugins.PluginRegistry.<init>(PluginRegistry.java:32)
at org.mockito.internal.util.MockCreationValidator.validateType(MockCreationValidator.java:22)
at org.mockito.internal.creation.MockSettingsImpl.validatedSettings(MockSettingsImpl.java:238)
at org.mockito.internal.creation.MockSettingsImpl.build(MockSettingsImpl.java:226)
at org.mockito.internal.MockitoCore.mock(MockitoCore.java:68)
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
我还缺少另一个依赖项吗?还是需要进行其他一些配置/注释/设置来修复错误并允许模拟对象?
Is there another dependency that I am missing? Or some other configuration/annotiation/setup that needs to be done to fix the error and allow the object to be mocked?
推荐答案
@JBNizet's suggestion to use Maven led me to Mockito's maven pom which lists the dependencies as:
- 字节伙伴1.9.0
- byte-buddy-agent 1.9.0
- 目标学2.6
下载 objenesis
并将其添加到项目中即可解决此问题.
Downloading objenesis
and adding it to the project fixed the issue.
这篇关于无法初始化Mockito的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!