同一个mock 连续多次调用返回不同结果实现方式
Mockito.when(methodCall).thenReturn(1x).thenReturn(2x).thenReturn(nx)
/** * 1,serService.checkUserNickName-->TRUE organizationService.checkOrgAccount-->FALSE * 2,serService.checkUserNickName-->TRUE organizationService.checkOrgAccount-->TRUE * 各两次后退出 */@Testpublic 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());}