我想驗證 Json.parse 從未在使用單元測驗的函式中呼叫,但我沒有正確使用 mockito。將不勝感激一些幫助。
試過了——
when(Json.parse(wsResponse.getBody())).thenThrow(new Exception("error msg"))
但得到一個錯誤 -
java.lang.RuntimeException: java.lang.NullPointerException盡管方法簽名包括拋出例外。
- 嘗試使用 verify 和 never but verify 等待函式
像這樣的——
verify(Json.parse(wsResponse.getBody()),never());
但有一個錯誤 - org.mockito.exceptions.misusing.NotAMockException: Argument passed to verify() is of type ObjectNode and is not a mock!
src 我看著 -
https://www.baeldung.com/mockito-exceptions ** 如何測驗未呼叫函式?** 如何使用 Mockito 驗證未呼叫特定方法?** mockito 測驗驗證 0 次呼叫
uj5u.com熱心網友回復:
Json.parse 方法是一個靜態方法。為了模擬和測驗你需要powermockito。所以請添加這些依賴項:
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>1.6.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<version>1.6.4</version>
<scope>test</scope>
</dependency>
添加這些后,您可以通過包含這些行來使用 powermockito 運行測驗:
@RunWith(PowerMockRunner.class)
@PrepareForTest(fullyQualifiedNames = "com.test.*")
然后,如果你想模擬一個靜態方法,你可以這樣做:
PowerMockito.mockStatic(Json.class);
然后需要呼叫被測方法:
underTest.testMethod();
最后你需要告訴 powermockito 我們希望這個方法永遠不會被呼叫:
PowerMockito.verifyStatic(Mockito.never());
Json.parse(Mockito.any());
uj5u.com熱心網友回復:
@Guts 答案更籠統,但需要 PowerMockito(另一個庫),在我看來它仍然很好。
這個也對我有用 - 我模擬 wsResponse 并檢查回傳的正文是否不是 json 或 csv 型別。它給了我相同的結果(在我的特定情況下),盡管它不是一般的。
when(wsResponse.getBody()) .thenReturn("{}") .thenReturn("Version Id,Version Name");
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/355047.html
