4 回答

TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個贊
如果您使用的是較新版本的 SpringBoot,它可能帶有大于 3.12.4 的 Mockito 版本,這可能會使您的 powermock-api-mockito2 無法工作,因?yàn)樵谳^新版本的 Mockito 中,org.mockito 中的 get() 方法.Answers 已被刪除,它已在 3.12.4 中棄用,并且 powermock-api-mockito 不適用于新版本。
作為一種解決方案,您可以降級 Mockito 版本,或者您可以使用更新版本的 Mockito 來模擬您的最終類或方法。

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個贊
如果您刪除 PowerMock 依賴項(xiàng),該示例將起作用。問題是所使用的 Mockito 和 PowerMock 的版本彼此不兼容。對于 PowerMock 2.x,您至少需要 Mockito 2.8.9+。PowerMock 提供了一個兼容性列表,顯示了哪個版本的 PowerMock 與哪個版本的 Mockito 兼容。修復(fù)版本以相互兼容,您的示例將開始工作。

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超21個贊
當(dāng)我嘗試將 Mockito 與 Junit 5 (@ExtendWith) 一起使用時,我遇到了類似的問題
java.lang.NoSuchMethodError: org.mockito.Mockito.mockitoSession()Lorg/mockito/session/MockitoSessionBuilder;
這是因?yàn)轭惵窂街写嬖趦蓚€版本的 mockito(一個是 mockito-all,另一個是 mockito-core),通過傳遞依賴。從 POM 中顯式刪除 mockito-all 依賴項(xiàng)后,問題得到解決。
@ExtendWith(MockitoExtension.class)
public class TodoBusinessImplWIthMockWithAnnotationTest {
@Mock
TodoService todoService;
@Test
public void usingMockito() {
......
}
}

TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個贊
刪除到您的 pom.xml mockito-all 并使用 mockito-core
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>
@ExtendWith(MockitoExtension.class)您可以在測試調(diào)用中使用注釋 。在測試類中用于 @InjectMocks注入您需要測試的服務(wù),這將允許@Mock他的依賴調(diào)用。
添加回答
舉報(bào)