java - 无法初始化 Mockito

标签 java mockito junit4

我正在尝试设置 Mockito 2.22 并已下载 mockito-core-2.22.2.jarbyte-buddy-1.9.0.jar并且,在 Netbeans 8.2 项目中,我已将这两个 jar 文件 JUnit 4.12Hamcrest 1.3 添加到测试库中。

当我尝试运行 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 );
    }
}

当我尝试运行测试时,出现错误:

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)

我还缺少另一个依赖项吗?或者需要完成一些其他配置/注释/设置来修复错误并允许模拟对象?

最佳答案

@JBNizet 使用 Maven 的建议让我发现 Mockito's maven pom其中列出的依赖项为:

  • 字节伙伴1.9.0
  • 字节伙伴代理1.9.0
  • 对象2.6

正在下载objenesis并将其添加到项目中解决了该问题。

关于java - 无法初始化 Mockito,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52671804/

相关文章:

java - 在tomcat中部署一个jar

java - 从 Java 应用程序创建/模拟 Android 上下文

unit-testing - 如何对调用私有(private)方法并依次调用 Web 服务方法的公共(public)方法进行单元测试

java - 如何改进 Guava Optional 的 mockito 默认行为?

java - 如何将 JUnit4 的测试通过/失败结果记录到文件中?

将纬度/经度转换为 MGRS 坐标的 Java 库,反之亦然?

java - 如何触发 PriorityQueue 的堆化?

java - 高频环路

java - 寻找有关 Java 单元测试的好信息

java - 从另一个类添加到对象 ArrayList