Как проверить вычитание поддельных классов? - PullRequest
0 голосов
/ 28 апреля 2018

Я застрял на модульном тесте, над которым я работаю:

if(dsIn.getItemNumber(1,"CC_FY_APPR_OBLIG_AMT") != null)
{
    dsIn.setItemNumber(1, "CC_FY_UNOBLIG_AMT", Double.valueOf(newValueIn)-dsIn.getItemNumber(1,"CC_FY_APPR_OBLIG_YTD_AMT"));
}
else
{
    dsIn.setItemNumber(1, "CC_FY_UNOBLIG_AMT", Double.valueOf(newValueIn));
}

Мне удалось высказать второй случай, когда getItemNumber() == null, но я изо всех сил пытаюсь найти правильный способ убедиться, что первый случай выполняется и возвращает соответствующее число после вычитания. Я попытался написать следующий тестовый пример:

@Test
public void testUncheckedApproved() throws TRDIException, IOException{


    Mockito.when(dsIn.getItemNumber(1,"CC_FY_APPR_OBLIG_YTD_AMT")).thenReturn(4.0);
    evaluate();

    Mockito.verify(dsIn, Mockito.times(1)).setItemNumber(1, "CC_FY_UNOBLIG_AMT", Double.valueOf(newValueIn)) - Mockito.verify(dsIn, Mockito.times(1)).setItemNumber(1, "CC_FY_APPR_OBLIG_YTD_AMT", 
    Double.valueOf(newValueIn));
}

Это, очевидно, не работает, и я также пытался проверить каждый метод в отдельности, но это не способ сделать это. Метод проверки неверен. Мне просто нужно выяснить эту линию.

1 Ответ

0 голосов
/ 29 апреля 2018

Я думаю, что второй verify не так. Вы отправили:

Mockito.verify(dsIn, Mockito.times(1)).setItemNumber(1, "CC_FY_UNOBLIG_AMT", Double.valueOf(newValueIn)) - Mockito.verify(dsIn, Mockito.times(1)).setItemNumber(1, "CC_FY_APPR_OBLIG_YTD_AMT", 
Double.valueOf(newValueIn));

Но это должно быть:

double d1=Mockito.verify(dsIn).getItemNumber(1,"CC_FY_APPR_OBLIG_YTD_AMT");
double d2=Double.valueOf(newValueIn)-d1;
Mockito.verify(dsIn).setItemNumber(1, "CC_FY_UNOBLIG_AMT", d2);

(я не указал, сколько раз эти методы вызываются, поскольку их следует вызывать только один раз).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...