我正在编写模拟单元测试用例。在嘲笑特定的单位响应实体对象时,我遇到一些错误,感谢任何可以帮助我的人。
这是我的课程:
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(rt);
默认情况下,如果我通过null,则测试用例可以正常工作。 但是,当我尝试将某些内容传递给记录或搜索记录时。我得到空指针异常。 有没有一种方法可以设置身体,使我的
if (records != null && records.size() >= 1) {
return records.get(0);
}
以下代码可以测试