我一直面临着一个特殊的问题。基本上,当我正常运行我的Mockito测试时,即‘'Run as Junit Test',它会给我以下错误。有没有人能帮帮我,请问我的错误是什么?
收到的错误:
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)测试类:
public class ListTest {
@Test
public void letsMockListSize() {
List<?> list= mock(List.class);
when(list.size()).thenReturn(2);
assertEquals(2, list.size());
}
}pom.xml
<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>发布于 2019-08-18 14:50:09
如果您删除PowerMock依赖项,则该示例可以正常工作。问题是使用的Mockito和PowerMock的版本彼此不兼容。对于Mockito 2.x,你至少需要PowerMock 2.8.9+。PowerMock提供了一个compatibility list,显示哪个版本的PowerMock与哪个版本的Mockito兼容。修复这些版本以使它们相互兼容,您的示例就可以开始工作了。
发布于 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。
https://stackoverflow.com/questions/57542232
复制相似问题