Тестовые сценарии Mockito для объекта ResponseEntity - PullRequest
0 голосов
/ 29 мая 2019

Я пишу тестовые примеры для мокито. При издевательстве над объектом объекта ответа конкретного юнита я сталкиваюсь с некоторыми ошибками, благодарю всех, кто может мне помочь.

Это мой класс:

 public class GetQuery(){
    HttpEntity<String> entity = new HttpEntity<>(PARAMETERS, headers);
    ResponseEntity<QueryResult> exchange = restTemplate.exchange(
                            restUrl + "/v" + restVersion + ".0" + 
         QUERY_SELECTION + ----,HttpMethod.GET, entity, QueryResult.class);
            if (exchange.getStatusCode()==(HttpStatus.OK)) {
                List<Type> records = exchange.getBody().records;
                if (records != null && records.size() >= 1) {
                    return records.get(0);
                } else  {
                    return null;
                } 
    }
    }

Это мой класс хранения результатов запроса:

 @JsonIgnoreProperties(ignoreUnknown = true)
    public static class QueryResult<T> {
        public List<T> records;
        public List<T> searchRecords;
    }

    public static class QueryResult extends QueryResult<Type> {
        }

Мой тестовый набор:

@Test
    public void getType(){
Type rt = new Type();
        rt.setId("1");

        QueryResult queryResult = new QueryResult();
        queryResult.searchRecords.add(rt);
        //queryResult.records.add(rt);
        String id = "ML";   


        ResponseEntity recordTypeResponse = new ResponseEntity<>(queryResult, HttpStatus.OK);   


        Mockito.when(restTemplate.exchange(anyString(), eq(HttpMethod.GET), any(HttpEntity.class),
                eq(QueryResult.class))).thenReturn(recordTypeResponse);

        A.GetQuery(id);
        assertEquals( "ML",id);

}

Ошибка в следующих двух строках: queryResult.searchRecords.add (rt); queryResult.records.add (к.т.);

По умолчанию, если я передаю ноль, тестовый пример работает нормально. Но когда я пытаюсь передать какое-то тело в записи или искать записи. Я получаю исключение нулевого указателя. Есть ли способ, которым я могу установить тело так, чтобы мой

if (records != null && records.size() >= 1) {
                return records.get(0);
            }

следующий код может быть проверен

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...