同一个mock 连续多次调用返回不同结果实现方式
Mockito.when(methodCall).thenReturn(1x).thenReturn(2x).thenReturn(nx)
/**
* 1,serService.checkUserNickName-->TRUE organizationService.checkOrgAccount-->FALSE
* 2,serService.checkUserNickName-->TRUE organizationService.checkOrgAccount-->TRUE
* 各两次后退出
*/
@Test
public void test_makeOrgAndUsername_checkUserNickName_true_and_checkOrgAccount_false() {
Mockito.when(userService.checkUserNickName(Mockito.anyString())).thenReturn(Boolean.TRUE).thenReturn(Boolean.TRUE);
Mockito.when(organizationService.checkOrgAccount(Mockito.anyString())).thenReturn(Boolean.FALSE).thenReturn(Boolean.TRUE);
String ss = impl.makeOrgAndUsername(C_USERNAME);
/**
* 当一次生成名称后 系统检查为被占用 此时
* 以下两个方法 各执行一次
* 间接证明 break 生效了
*/
Mockito.verify(userService, Mockito.times(2)).checkUserNickName(Mockito.anyString());
Mockito.verify(organizationService, Mockito.times(2)).checkOrgAccount(Mockito.anyString());
}转载于:https://my.oschina.net/yangming0322/blog/749167
