JUNIT - Невозможно десериализовать экземпляр `java.util.ArrayList` из токена VALUE_STRING - PullRequest
0 голосов
/ 23 мая 2018

Я хочу проверить свой метод addSomething, я создал метод setUp, который выглядит следующим образом:

@Before
public void setUp() throws Exception {
    activitiesService = new ActivitiesService(databaseControllerMock);
    when(databaseControllerMock.get(anyString(), any())).thenReturn(item);
    when(item.getJSON(anyString())).thenReturn("test");
}

В этом случае у меня появляется это сообщение об ошибке:

com.fasterxml.jackson.core.JsonParseException: нераспознанный токен 'test': ожидал 'null', 'true', 'false' или NaN

Поэтому я изменил:

when(item.getJSON(anyString())).thenReturn("true");

В этом случае яполучаю такую ​​ошибку:

com.fasterxml.jackson.databind.exc.MismatchedInputException: Невозможно десериализовать экземпляр java.util.ArrayList из токена VALUE_TRUE в [Source: (String) "true";строка: 1, столбец: 1]

Все это относится к этой части моего метода:

try {
        Item item = dbService.get(tableName, Collections.singletonList(primaryKey));
        String measurementsJSON = item.getJSON("measurements");
        String mealsJSON = item.getJSON("meals");
        String trainingsJSON = item.getJSON("trainings");

        ObjectMapper objectMapper = new ObjectMapper();

        List<Measurement> measurements = objectMapper.readValue(measurementsJSON, new TypeReference<List<Measurement>>() {
        });
        List<Meal> meals = objectMapper.readValue(mealsJSON, new TypeReference<List<Meal>>() {
        });
        List<Training> trainings = objectMapper.readValue(trainingsJSON, new TypeReference<List<Training>>() {
        });

DbService и Item - Mocks.Может кто-нибудь помочь мне с этой проблемой?

...