Как Junit проверить блок try catch в моем коде - PullRequest
0 голосов
/ 22 мая 2018

У меня есть класс с несколькими методами, и у каждого есть блок try catch для поиска любых исключений.

Код выглядит следующим образом:

public ResponseEntity get() {

    try {
        .....
    } catch (Exception e) {

        output = new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
    }

    return output;
}

, и я придумалконтрольный пример с использованием Mokito для проверки описанного выше сценария, но он не понимает, как войти в блок catch указанного выше

@Test
public void testgetAllUsers_withoutexecp() {
    when(sMock.getAll()).thenReturn(someList);
    Assert.assertTrue(result.getStatusCode() ==  HttpStatus.OK );
}
@Test(expected=NullPointerException.class)
public void testgetAllUsers_execp() {
    when(sMock.getAll()).thenReturn(null);
    Assert.assertFalse(result.getStatusCode() ==  HttpStatus.OK );

}

Я попытался вызвать исключение NullPointerException, но блок catch все еще не включен в codecoverage (что я предполагаюэто не было проверено).Пожалуйста, помогите мне написать контрольный пример Junit для этого, чтобы ввести исключение.Я очень новичок во всех этих темах.

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

Ожидать NullPointerException не имеет смысла.Этого никогда не произойдет, потому что вы перехватываете исключения.

Вместо этого тестируйте AppConstants.ERROR_MESSAGE9 и HttpStatus.INTERNAL_SERVER_ERROR

0 голосов
/ 22 мая 2018

Вы можете вызвать исключение, используя thenThrow предложение Mockito:

when(serviceMock.getAllUser()).thenThrow(new NullPointerException("Error occurred"));

, а затем утверждать так:

Assert.assertTrue(result.getStatusCode() ==  HttpStatus.INTERNAL_SERVER_ERROR);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...