며칠 전 외부 API 를 사용해서 DB 에 데이터를 저장하는데에 성공하고, 오늘은 그 데이터를 화면에 띄우는 작품 목록 조회 REST API 를 작성했다. 그런데 전체 테스트를 한 번 돌리니 기존에는 성공했던 백도어 테스트가 깨지는 것이었다.
일단 실제 DB 를 들어가서 확인해보니 데이터는 잘 들어와있는데 테스트는 NPE(NullPointException) 를 뱉어낸다. 원인을 알 수 없어서 RestTemplate 구조를 이리저리 바꿔가며 테스트 해보다가, 결국 동료분의 도움으로 아래처럼 삼항연산자로 해결하긴 했다.
contentRepository.save(
Content.builder()
.imageUrl(data.get("poster_path") == null
? "" :
imageUrl + data.get("poster_path").toString().replaceAll(match, ""))
.releaseDate(data.get("release_date") == null
? ""
: data.get("release_date").toString().replaceAll(match, ""))
.popularity(data.get("popularity").toString().replaceAll(match, ""))
.description(data.get("overview").toString().replaceAll(match, ""))
.createdAt(dateTime)
.build()
);
데이터가 null 이면 기본값을 "" 으로 처리했더니 테스트가 기존대로 잘 동작하고, 데이터도 여전히 잘 들어왔다. 설명을 듣기로는 api 를 호출하며 로딩될 때, 그 잠깐 데이터가 없는 순간을 null 로 띄우는 것이라고 한다. 어쨌든 해결!
'TIL' 카테고리의 다른 글
Plmography 프로젝트 작업 로그 #27 - 스프린트 3주차 마지막 점검 (23.01.08 TIL) (0) | 2023.01.08 |
---|---|
Plmography 프로젝트 작업 로그 #26 - 변수명 짓기 (23.01.07 TIL) (0) | 2023.01.07 |
Plmography 프로젝트 작업 로그 #24 - 나름대로 전력질주중 (23.01.05 TIL) (0) | 2023.01.05 |
Plmography 프로젝트 작업 로그 #23 - 풀스택 (23.01.04 TIL) (0) | 2023.01.04 |
Plmography 프로젝트 작업 로그 #22 - 스프린트 관리하기 (23.01.03 TIL) (0) | 2023.01.03 |
댓글