NullPointerException при использовании Mockito thenCallRealMethod - PullRequest
0 голосов
/ 29 мая 2018

У меня есть вопрос относительно использования Mockito thenCallRealMethod.Я прочитал предупреждения об использовании этой функции;в основном я хочу записать это в свой тест, чтобы обеспечить защиту логики своего приложения на будущее, потому что она используется в качестве библиотеки, и я хочу убедиться, что пользователи моей библиотеки имеют защиту от будущего.

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

@Test
public void Test() {
    when(restTemplate.postForEntity(...)).thenReturn(new ResponseEntity<>(realObjectMapper.writeValueAsString(data), HttpStatus.OK));
    when(objectMapper.readValue(realObjectMapper.writeValueAsString(data), TestData.class)).thenCallRealMethod();
    TestData result = tested.callMethod(...);
    ....
}

TestData - это простой POJO, который содержит множество полей, но ничего особенно интересного, а данные являются экземпляром TestData.objectMapper - это макетированный экземпляр FasterXML Jackson ObjectMapper , а realObjectMapper - это реальный (немодированный) экземпляр того же класса.

Проблема, с которой я столкнулся, - это исключение NullPointerException, когда мое приложение пытаетсявыполнить objectMapper.readValue (на проверяемом экземпляре) в соответствии с thenCallRealMethod во второй строке теста.Я проверил, что, когда я передаю те же входные данные в realObjectMapper.readValue, тогда он работает нормально, поэтому с входными данными все в порядке.Чего мне не хватает?

Stack trace:
java.lang.NullPointerException
    at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2842)
    .... (my code here)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...