无法初始化插件:interface org.mockito.plugins.mockmaker

aij0ehis  于 2021-06-29  发布在  Java
关注(0)|答案(26)|浏览(2520)

一旦开始测试,我会遇到以下异常:

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)

这是我的测试:

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);
        }
    }

我正在使用netbeans8.2。我下载了mockito-core-2.7.0.jar,然后选择“testlibraries”->“addjar”并添加了mockito-core-2.7.0.jar。
类路径和一切看起来都很好,我仍然得到例外。
有什么建议吗?

cbwuti44

cbwuti4416#

我遇到了这个问题,通过将我的org.mockito.mockito-core版本升级到最新版本来解决了这个问题。我使用旧版本已经有相当长一段时间了。

vx6bjr1n

vx6bjr1n17#

我在一个现有的项目中遇到了同样的问题。我使用了Java8,另外还安装了Java10。所以我开始得到这个例外。我卸载了java10,它没有帮助。我从maven repo中删除了bytebuddy jars,但没有任何帮助。只有在从maven repo中完全删除所有jar之后,我才能再次编译这个项目。

wf82jlnq

wf82jlnq18#

缺少引用:
byte-buddy-1.6.5.jar文件
byte-buddy-agent-1.6.5.jar
objenesis-2.5.jar
自从mockito2.0.2beta版以来,mockito内核就有依赖性。

oogrdqng

oogrdqng19#

将mockito依赖项显式定义为powermock和springboot testcompile组中的版本:“org.mockito”,名称:“mockito core”,版本:“2.8.9”

3lxsmp7m

3lxsmp7m20#

对于android开发,您需要导入以下内容:

dependencies {
   testCompile "org.mockito:mockito-core:+"
   androidTestCompile "org.mockito:mockito-android:+"
 }

找不到这方面的任何参考,但这是唯一一个为我工作。

btqmn9zl

btqmn9zl21#

当切换到Java10和SpringBoot2时,我也遇到了同样的异常。这种依赖性组合对我很有效:

<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>
8wigbo56

8wigbo5622#

不是对最初海报的回答,因为他/她正在使用netbeans,但是在eclipse中,我需要执行“maven->updateproject”以使测试再次工作。

yzckvree

yzckvree23#

删除版本声明对我有效:
例子:

<dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-core</artifactId>
        <version>2.8.9</version>
        <scope>test</scope>
    </dependency>

删除2.8.9
之后:

<dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-core</artifactId>
        <scope>test</scope>
    </dependency>

这可能是由于该依赖项的jar包之间的版本问题造成的。

dwthyt8l

dwthyt8l24#

我在类路径上有byte-buddy(是mockito2.8.9的可传递dep),但仍然得到了异常。原因是我用jre而不是jdk运行单元测试。改用jdk对我很有效。

wlwcrazw

wlwcrazw25#

从出现错误的maven存储库路径中手动删除“byte-buddy-1.7.11.jar”。maven更新了项目,问题就解决了。努力为我工作。

ff29svar

ff29svar26#

只需更新到 org.mockito:mockito-core . 一旦我做了,错误就消失了!

相关问题