#java #junit #mocking #mockito
#java #junit #насмешливый #mockito
Вопрос:
Я хочу, чтобы приведенная ниже цепочка вызовов была издевательской
sessionId = genericRequestVO.getLimitRequestVOList().get(0).getSessionId();
Для этого я делаю
GenericRequestVO genericRequestVO=mock(GenericRequestVO.class);
List<LimitRequestVO> limitList=mock(LinkedList.class);
LimitRequestVO limitRequestVO=mock(LimitRequestVO.class);
when(genericRequestVO.getLimitRequestVOList()).thenReturn(limitList);
when(limitList.get(0)).thenReturn(limitRequestVO);
when(limitRequestVO.getSessionId()).thenReturn("1234");
но я получаю исключение NullPointerException вместо ожидаемого значения.
Пожалуйста, подскажите, почему это не работает? Есть ли какая-либо ключевая концепция, которую я упускаю из виду относительно «когда и тогда»? Я предполагаю, что мне просто нужно указать ситуацию when для макетного объекта, и это вернет желаемый результат.
Комментарии:
1. Вы уверены, что не забыли задать GenericRequestVO для вашего тестового модуля (или SUT)? Нам было бы над чем поработать, если бы вы предоставили нам весь тест с кодом настройки для тестируемого модуля.
2. Где происходит исключение нулевого указателя?