2015-08-30 2 views
0

Я новичок в написании тестовых примеров junit и нуждаюсь в помощи. Я читал о возможных решениях, но на данный момент они не работают.Junit test case для метода с типом возврата Void

Главный класс выглядит следующим образом, который вызывает метод класса addResponseData (этот метод только устанавливает значения в сеансе и ничего не возвращает). См. Код ниже.

TestClass: Я написал тестовый пример junit, как показано ниже.

@Test 
public void testSuccessfulCallWithSigners() { 
    List<Signer> signerList = setSignerList(); 
    List<Signer> additionalSignerList = setSignerList(); 
    when(objSession.getSignerList()).thenReturn(signerList); 
    when(nsbSession.getAdditionalSignerList()).thenReturn(additionalSignerList); 
    ResponseWrapper output = signerController.getUsers(request); // actual method call 
    assertEquals(output, responseWrapper); 
} 

Этот тест терпит неудачу, потому что я всегда получаю пустой signerList и additionalSignerList. (Тест результат метод getAdditionalSignerList() должен возвращать список) Пожалуйста, дайте мне знать, что я делаю неправильно здесь. Заранее спасибо. Я также отправляю свой код setSignerList() в случае, если вы хотите увидеть его для справки.

private List<Signer> setSignerList() { 
    List<Signer> signerList = new ArrayList<Signer>(); 
    signerList.add(primarySigner); // primarySigner is mock object. 
    return signerList; 
} 

ответ

0

Вы издевались над objSession, а также вы вернули свой пустой список, когда эти два метода вызываются тестовым случаем.

, когда (....). ThenReturn (....) используется для указания условия и возвращаемого значения (Stubbing) для этого условия. не вернет список, возвращенный фактическим вызовом.

List<Signer> signerList = setSignerList(); // EMPTY LIST 
List<Signer> additionalSignerList = setSignerList(); // EMPTY LIST 
when(objSession.getSignerList()).thenReturn(signerList); //MOCK 
when(nsbSession.getAdditionalSignerList()).thenReturn(additionalSignerList); // MOCK