Question Impossible d'initialiser le plug-in: interface org.mockito.plugins.MockMaker


Je reçois les exceptions suivantes une fois les tests démarrés:

    Testcase: treeCtorArgumentTest(com.xythos.client.drive.cachedtree.CachedTreeTest):  Caused an ERROR
Could not initialize plugin: interface org.mockito.plugins.MockMaker
java.lang.IllegalStateException: Could not initialize plugin: interface org.mockito.plugins.MockMaker
    at org.mockito.internal.configuration.plugins.PluginLoader$1.invoke(PluginLoader.java:66)
    at com.sun.proxy.$Proxy7.isTypeMockable(Unknown Source)
    at org.mockito.internal.util.MockUtil.typeMockabilityOf(MockUtil.java:29)
    at org.mockito.internal.util.MockCreationValidator.validateType(MockCreationValidator.java:22)
    at org.mockito.internal.creation.MockSettingsImpl.validatedSettings(MockSettingsImpl.java:168)
    at org.mockito.internal.creation.MockSettingsImpl.confirm(MockSettingsImpl.java:162)
    at org.mockito.internal.MockitoCore.mock(MockitoCore.java:64)
    at org.mockito.Mockito.mock(Mockito.java:1687)
    at org.mockito.Mockito.mock(Mockito.java:1600)
    at com.xythos.client.drive.cachedtree.CachedTreeTest.setUp(CachedTreeTest.java:51)
Caused by: java.lang.NoClassDefFoundError: net/bytebuddy/dynamic/loading/ClassLoadingStrategy
    at org.mockito.internal.creation.bytebuddy.SubclassByteBuddyMockMaker.<init>(SubclassByteBuddyMockMaker.java:33)
    at org.mockito.internal.creation.bytebuddy.ByteBuddyMockMaker.<init>(ByteBuddyMockMaker.java:22)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at java.lang.Class.newInstance(Class.java:442)
    at org.mockito.internal.configuration.plugins.PluginLoader.loadPlugin(PluginLoader.java:54)
    at org.mockito.internal.configuration.plugins.PluginRegistry.<init>(PluginRegistry.java:18)
    at org.mockito.internal.configuration.plugins.Plugins.<clinit>(Plugins.java:17)
    at org.mockito.internal.util.MockUtil.<clinit>(MockUtil.java:24)
Caused by: java.lang.ClassNotFoundException: net.bytebuddy.dynamic.loading.ClassLoadingStrategy
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

Ceci est mon test:

package com.xythos.client.drive.cachedtree;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.junit.MockitoJUnitRunner;

@RunWith(MockitoJUnitRunner.class)

    public class CachedTreeTest {

        public CachedTreeTest() {
        }

        @Test
        public void treeCtorArgumentTest() {
        somemock m = mock(SomeClass.class);
        }
    }

J'utilise NetBeans 8.2. J'ai téléchargé mockito-core-2.7.0.jar, puis j'ai sélectionné "Test Libraries" -> "Add Jar" et ajouté mockito-core-2.7.0.jar.

Classpath et tout semble correct, je reçois encore des exceptions.

Aucun conseil?


22
2018-01-31 11:42


origine


Réponses:


Si vous utilisez powermock, assurez-vous que vos dépendances indiquent:

org.powermock:powermock-api-mockito2

au lieu de

org.powermock:powermock-api-mockito

36
2017-11-14 20:30



Référence manquante à:

  • byte-buddy-1.6.5.jar
  • byte-buddy-agent-1.6.5.jar
  • objenesis-2.5.jar

Depuis Mockito 2.0.2 beta, Mockito-core a des dépendances.


26
2018-01-31 13:39



J'ai eu Byte Buddy sur classpath (est transitive dep de Mockito 2.8.9) et a toujours l'exception. La raison pour moi était que j'ai exécuté les tests unitaires avec JRE au lieu de JDK. Passer à JDK a fonctionné pour moi.


3
2018-06-16 14:18



J'ai eu le même problème - la même pile apparaît dans mon journal. C'est généralement un problème avec la configuration du projet ... OU
Le problème peut être dans les JAR bytebuddys si ceux-ci n'ont pas été téléchargés correctement.
 Lorsque j'essaie de vérifier la classe ClassLoadingStrategy manuellement, je reçois Zip *: français Erreur.

Dans ce cas, il suffit de supprimer manuellement le Byte Buddy du répertoire maven local, généralement situé à:
{home} /. m2 / repository / net / bytebuddy /

Le prochain essai de projet ou de test, ils seront à nouveau téléchargés et devraient fonctionner comme prévu.

Malheureusement, Java ClassLoader commun est confronté de la même manière lorsque la classe ou le fichier JAR est manquant, de même que le fichier jar est corrompu.


1
2017-10-23 10:31



dans mon cas, un réglage env anormal conduira également à cette erreur:

dans Ubuntu 16.04, java et javac avaient été mises à jour alternatives à 7 mais $ JAVA_HOME avait été mal réglé à 8

Je retire le $ JAVA_HOME, et tout revient à la normale


0
2018-04-17 04:57



J'ai eu la même exception en passant à Java 10 et Spring Boot 2. Cette combinaison de dépendance a fonctionné pour moi:

    <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-all</artifactId>
        <version>2.0.2-beta</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>net.bytebuddy</groupId>
        <artifactId>byte-buddy</artifactId>
        <version>1.8.16</version>
    </dependency>
    <dependency>
        <groupId>net.bytebuddy</groupId>
        <artifactId>byte-buddy-agent</artifactId>
        <version>1.8.16</version>
        <scope>test</scope>
    </dependency>

0
2017-08-06 08:19



Ajout d'un aspect bnd à ceci

Ajouter à Réponse de Paskas, vous devez également inclure les dépendances dans le dépôt cnf maven, si vous en utilisez un (comme mon cnf/central.mvn).

org.mockito:mockito-core:2.21.0
net.bytebuddy:byte-buddy:1.8.15
net.bytebuddy:byte-buddy-agent:1.8.15
org.objenesis:objenesis:2.6

et pour un référencement pratique, vous pouvez inclure une variable bnd dans votre cnf/build.bnd

mockito: org.mockito:mockito-core; version=2.21.0,\
         net.bytebuddy:byte-buddy; version=1.8.15,\
         net.bytebuddy:byte-buddy-agent; version=1.8.15,\
         org.objenesis:objenesis; version=2.6

et dans le fichier de votre projet

-testpath:\
    ${mockito}

0
2017-08-09 07:23