在下面的簡單示例中,我想知道如何nameManager僅在nameManager.getName()使用 Mockito 第二次呼叫后才能回傳名稱?(我知道我還可以做其他事情,例如嘲笑saveName()它的作用)
我想過使用doAnswer(),但我不知道如何確定何時nameManager.getName()被呼叫了兩次。
public void saveName(String name) {
boolean doesNameExist = nameManager.getName(name).isPresent();
if (!doesNameExist) {
saveName(name);
if (!nameManager.getName(name).isPresent()) {
throw new Exception("Cannot verify name has been saved");
}
}
}
uj5u.com熱心網友回復:
在您的單元測驗中,您可以簡單地添加 then 子句兩次。像這樣 -
@Test
public void yourUnitTest(){
when(nameManager.getName(anyString())
.thenReturn(null)
.thenReturn(someValue);
// your test
}
這只會在第二次呼叫時回傳值,并且第一次回傳 null。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/366155.html
上一篇:如何將本機查詢轉換為JPQL
