同一个mock 连续多次调用返回不同结果实现方式

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

同一个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

你可能感兴趣的:(同一个mock 连续多次调用返回不同结果实现方式)