Jon*_*Jon 0 java unit-testing mockito
在下面的简单示例中,我想知道如何仅在使用 Mockito 第二次调用nameManager后才返回名称?nameManager.getName()(我知道我还可以做其他事情,比如嘲笑什么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");
}
}
}
Run Code Online (Sandbox Code Playgroud)
小智 8
在单元测试中,您只需添加 then 子句两次即可。像这样 -
@Test
public void yourUnitTest(){
when(nameManager.getName(anyString())
.thenReturn(null)
.thenReturn(someValue);
// your test
}
Run Code Online (Sandbox Code Playgroud)
仅当第二次调用时才会返回值,第一次调用时将返回 null。
| 归档时间: |
|
| 查看次数: |
2913 次 |
| 最近记录: |