首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >org.mockito.Mockito.framework()Lorg/mockito/MockitoFramework :java.lang.NoSuchMethodError

org.mockito.Mockito.framework()Lorg/mockito/MockitoFramework :java.lang.NoSuchMethodError
EN

Stack Overflow用户
提问于 2019-08-18 14:35:46
回答 2查看 16.1K关注 0票数 8

我一直面临着一个特殊的问题。基本上,当我正常运行我的Mockito测试时,即‘'Run as Junit Test',它会给我以下错误。有没有人能帮帮我,请问我的错误是什么?

收到的错误:

代码语言:javascript
复制
    java.lang.NoSuchMethodError: org.mockito.Mockito.framework()Lorg/mockito/MockitoFramework;
        at org.powermock.api.mockito.mockmaker.MockMakerLoader.doLoad(MockMakerLoader.java:45)
        at org.powermock.api.mockito.mockmaker.MockMakerLoader.load(MockMakerLoader.java:36)
        at org.powermock.api.mockito.mockmaker.PowerMockMaker.<init>(PowerMockMaker.java:36)
        ... shortened stacktrace....
        at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:41)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:541)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:763)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:463)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:209)

测试类:

代码语言:javascript
复制
public class ListTest {
    @Test
    public void letsMockListSize() {
        List<?> list= mock(List.class);
        when(list.size()).thenReturn(2);
        assertEquals(2, list.size());
    }
}

pom.xml

代码语言:javascript
复制
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-all</artifactId>
    <version>1.10.19</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.hamcrest</groupId>
    <artifactId>hamcrest-library</artifactId>
    <version>1.3</version>
    <scope>test</scope>
</dependency>   
<dependency>
    <groupId>org.powermock</groupId>
    <artifactId>powermock-module-junit4</artifactId>
    <version>2.0.0-beta.5</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.powermock</groupId>
    <artifactId>powermock-api-mockito2</artifactId>
    <version>2.0.0-beta.5</version>
    <scope>test</scope>
</dependency>
EN

回答 2

Stack Overflow用户

发布于 2019-08-18 14:50:09

如果您删除PowerMock依赖项,则该示例可以正常工作。问题是使用的Mockito和PowerMock的版本彼此不兼容。对于Mockito 2.x,你至少需要PowerMock 2.8.9+。PowerMock提供了一个compatibility list,显示哪个版本的PowerMock与哪个版本的Mockito兼容。修复这些版本以使它们相互兼容,您的示例就可以开始工作了。

票数 7
EN

Stack Overflow用户

发布于 2022-01-25 15:20:02

如果你使用的是较新版本的SpringBoot,它可能附带了大于3.12.4的Mockito版本,这可能会使powermock-api-mockito2无法工作,因为在较新版本的Mockito中,来自org.mockito.Answers的get()方法已被删除,它在3.12.4中已被弃用,并且powermock-api-mockito不适用于较新版本。

有一个关于这个问题的票据打开了,here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57542232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档