如何测试void方法?

时间:2016-05-04 03:00:12

标签: java testing mockito

public void checkAlreadyUsedOrValidHealthDashBoardToken(ServiceCode serviceCode) {
    if(serviceCode.getHealthDashBoardToken().isEmpty()) {
        return;
    } else if(isAlreadyUsedHealthDashBoardToken(serviceCode)) {
        throw new GlobalException(ResponseType.SERVICE_ALREADY_USED_HEALTH_DASHBOARD_TOKEN);
    } else if(!isValidHealthDashBoardToken(serviceCode)) {
        throw new GlobalException(ResponseType.SERVICE_NOT_VALID_HEALTH_DASHBOARD_TOKEN);
}
}

@Test(expected = GlobalException.class)
public void checkAlreadyUsedOrValidHealthDashBoardTokenTest() {
    List<ServiceCode> serviceCodeList = new ArrayList<ServiceCode>();
    serviceCodeList.add(serviceCode);

    Mockito.when(serviceManageMapper.selectServiceByHashBoardToken((ServiceCode)notNull())).thenReturn(serviceCodeList);
    // execute test
}

我只想测试void方法。我该如何执行测试?请帮我。

2 个答案:

答案 0 :(得分:1)

一般来说,如果你想测试它应该有一个返回类型。但是如果你想以这种方式进行测试,那么

@Test
public void checkAlreadyUsedOrValidHealthDashBoardTokenTest()
{
    <Enter prerequisite codes>
    int flag=0;
    try
    {
        checkAlreadyUsedOrValidHealthDashBoardToken(serviceCode);
    }
    catch(GlobalException ge)
    {
        if(GlobalException Response Type is SERVICE_ALREADY_USED_HEALTH_DASHBOARD_TOKEN)
        {
            falg=1;
        }
        else if(GlobalException Response Type is SERVICE_NOT_VALID_HEALTH_DASHBOARD_TOKEN)
        {
            flag=2;
        }
    }
    finally
    {
        assertEquals(flag,0/1/2);
    }

}

输入三种类型的数据并检查0,1和2状态。 这根本不是好编码。但那可能是你想要的东西。 NB。有些代码大致写成上面的逻辑,根据您的类实现输入正确的代码。

答案 1 :(得分:0)

在我看来,我认为函数名称有点太长了,但无论如何。

至于你的问题,你的意思是什么?调试?如果是这样,我会在整个代码中分散打印语句来测试它。