Я пишу тестовые примеры для мокито. При издевательстве над объектом объекта ответа конкретного юнита я сталкиваюсь с некоторыми ошибками, благодарю всех, кто может мне помочь.
Это мой класс:
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);
}
следующий код может быть проверен