NullpointerException имитирует тест - PullRequest
0 голосов
/ 09 июля 2020

У меня проблема с издевательством над тестом, все идет правильно до этого момента кода / теста, который я получаю NullPointerException, это основной код, в котором запускается нулевой указатель.

ResponseSrvAddDto responseSrvAdd = kjidR048.executeAddDocuments(requestAdd);
        
String returnCode = responseSrvAdd.getReturnCode();
if (returnCode != null && "00".equals(returnCode)){
ERROR! java.lang.NullPointerException

У меня это в тесте

ResponseSrvAddDto responseSrvAdd = mock(ResponseSrvAddDto.class);

Mockito.when(kjidR048.executeAddDocuments(requestAdd)).thenReturn(responseSrvAdd); (this goes correct)
String code = "00";
Mockito.when(responseSrvAdd.getReturnCode()).thenReturn(code); 

(но похоже, что макет игнорируется)

Я не знаю, почему макет в responseSrvAdd.getReturnCode() запускает нуль указатель, но я уже издевался над ним.

1 Ответ

1 голос
/ 09 июля 2020

Когда вы используете mock для службы, он создает объект, который ничего не делает или возвращает null для всех методов. Если вы хотите протестировать responseSrvAdd.getReturnCode(), используйте шпион https://www.baeldung.com/mockito-spy вот руководство.

Для сущности, вам нужно создать объект, это будет примерно так:

ResponseSrvAddDto responseSrvAdd = новый ResponseSrvAddDto (); responseSrvAdd.setReturnCode ("00"); Mockito.when (kjidR048.executeAddDocuments (requestAdd)). ThenReturn (responseSrvAdd);

...