Невозможно инициализировать Mockito - PullRequest
0 голосов
/ 05 октября 2018

Я пытаюсь настроить Mockito 2.22 и загрузил mockito-core-2.22.2.jar и byte-buddy-1.9.0.jar, и в проекте Netbeans 8.2 я добавил эти два jar-файла JUnit 4.12 и Hamcrest 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)

Есть ли еще одна зависимость, которую мне не хватает?Или какая-то другая конфигурация / аннотирование / настройка, которая должна быть сделана, чтобы исправить ошибку и позволить объекту быть смоделированным?

1 Ответ

0 голосов
/ 05 октября 2018

@ Предложение JBNizet использовать Maven привело меня к maven pom от Mockito , который перечисляет следующие зависимости:

  • byte-buddy 1.9.0
  • byte-buddy-agent 1.9.0
  • objenesis 2.6

Загрузка objenesis и добавление его в проект устранили проблему.

...