2020년 1월 17일 금요일

Response Data 추출 시 NullPointerException으로 테스트가 종료되지 않게 하려면

데이터 추출 후 assertion 시 isNotNull로 하려고 했으나 데이터 추출하는 부분에서 NullPointerException이 발생하게 되면 assert를 하지 않고 바로 테스트가 종료된다.

리포트에서도 NullPointerException으로 fail이 발생했다고만 나와서 왜 NullPointerException이 났는지 코드를 봐야 하는 문제점이 있다.

해결책으로는 MapUtils(org.apache.commons.collections)를 사용하면 된다.
MapUtils의 get Method들은 내부적으로 null 체크를 한다.

<response>
{
"data": {
"dealSrl": [
1111111111
],
"total": 1
},
"httpStatus": "OK",
"httpCode": 200
}
"assertion  : data.dealSrl[0]의 dealSrl 값 확인" 이라고 했을 때 

Map<Object, Object> resMap = jsonPath.get("data");
List<Long> dealSrlList = (List) MapUtils.getObject(resMap, "dealSrl");
softAssertions.assertThat(dealSrlList.size()).as(methodName).isEqualTo(total);
 
Long dealSrl = dealSrlList.get(0);
logger.debug("dealSrl : " + dealSrl);
softAssertions.assertThat(dealSrl).as(methodName).isNotNull();

댓글 없음:

댓글 쓰기