亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java.lang.NoSuchMethodError: org.mockito.Mockito.

java.lang.NoSuchMethodError: org.mockito.Mockito.

隔江千里 2023-06-14 10:35:50
我一直面臨一個特殊的問題?;旧希斘艺_\行我的 Mockito 測試時,即“作為 Junit 測試運行”,它會給我以下錯誤。有人可以幫我嗎我的錯誤是什么?收到的錯誤:    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>
查看完整描述

4 回答

?
慕容3067478

TA貢獻1773條經驗 獲得超3個贊

如果您使用的是較新版本的 SpringBoot,它可能帶有大于 3.12.4 的 Mockito 版本,這可能會使您的 powermock-api-mockito2 無法工作,因為在較新版本的 Mockito 中,org.mockito 中的 get() 方法.Answers 已被刪除,它已在 3.12.4 中棄用,并且 powermock-api-mockito 不適用于新版本。

作為一種解決方案,您可以降級 Mockito 版本,或者您可以使用更新版本的 Mockito 來模擬您的最終類或方法。

查看完整回答
反對 回復 2023-06-14
?
慕神8447489

TA貢獻1780條經驗 獲得超1個贊

如果您刪除 PowerMock 依賴項,該示例將起作用。問題是所使用的 Mockito 和 PowerMock 的版本彼此不兼容。對于 PowerMock 2.x,您至少需要 Mockito 2.8.9+。PowerMock 提供了一個兼容性列表,顯示了哪個版本的 PowerMock 與哪個版本的 Mockito 兼容。修復版本以相互兼容,您的示例將開始工作。



查看完整回答
反對 回復 2023-06-14
?
茅侃侃

TA貢獻1842條經驗 獲得超21個贊

當我嘗試將 Mockito 與 Junit 5 (@ExtendWith) 一起使用時,我遇到了類似的問題


java.lang.NoSuchMethodError: org.mockito.Mockito.mockitoSession()Lorg/mockito/session/MockitoSessionBuilder;

這是因為類路徑中存在兩個版本的 mockito(一個是 mockito-all,另一個是 mockito-core),通過傳遞依賴。從 POM 中顯式刪除 mockito-all 依賴項后,問題得到解決。


@ExtendWith(MockitoExtension.class)

public class TodoBusinessImplWIthMockWithAnnotationTest {


   @Mock

   TodoService todoService;


   @Test

   public void usingMockito() {


    ......


   }


}


查看完整回答
反對 回復 2023-06-14
?
白板的微信

TA貢獻1883條經驗 獲得超3個贊

刪除到您的 pom.xml mockito-all 并使用 mockito-core


<dependency>

  <groupId>org.mockito</groupId>

  <artifactId>mockito-core</artifactId>

  <scope>test</scope>

</dependency>

@ExtendWith(MockitoExtension.class)您可以在測試調用中使用注釋 。在測試類中用于 @InjectMocks注入您需要測試的服務,這將允許@Mock他的依賴調用。


查看完整回答
反對 回復 2023-06-14
  • 4 回答
  • 0 關注
  • 1293 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號