티스토리 뷰
REST API - 깨진 테스트 수정하기
- 기존에 작성했던 테스트중 깨지는 테스트가 발생한다.
- updateEvent
- getEvent
updateEvent
-
깨지는 이유 ?
-
로그를 먼저 살펴보자
- EventController의 156 Line에서 NullPointerException이 발생한다.
-
EventController 의 156 Line
-
event의 Manager가 Null인 상태에서 equals를 호출하기때문에 예외가 발생한다.
- 기존 Event의 Manager가 Null인 경우 해당 예외가 발생한다.
-
왜 Null 이지 ?
- 기존 테스트 코드들을 살펴보자.
- 기존의 테스트 코드들은 event를 생성할때
Event에 대한 정보만 생성
할뿐 manager정보에 대한 설정을 하지 않는다.
해결 방법
-
우선 Account 를 생성하는 부분을 Extract 하자
-
generateEvent 메서드를 overloading 하는 method를 추가생성
- Account를 받아 Manager로 등록하여 Event를 생성한다.
-
overloading 하는 이유 ?
- 기존의 테스트가 깨지지 않도록 유지하면서 인증이 필요한 테스트의 경우 manager정보가 필요하다.
- 그럴 경우에만 사용할수 있도록 overload하는 method를 생성한것
-
updateEvent 수정
- Account 를 먼저 생성한다.
- Event생성시 Account 를 Manager로 등록하여 생성한다.
getEvent
- 깨지는 이유 ?
- 마찬가지로 NullPointerExeception이 난다.
- Event 조회시 Manager여부를 판단하는데 테스트 데이터인 Event의 Manager를 지정해주지 않았다.
해결 방법
- getEvent 수정
- Account 를 먼저 생성한다.
- Event생성시 Account 를 Manager로 등록하여 생성한다.
정리
- updateEvent, getEvent 모두 API 에서는 manager여부를 체크하는 로직이 존재한다.
- 하지만 기존 테스트 코드에서는 이벤트 생성시 manager 지정을 하지 않았기때문에 NullPointeException 이 발생한 것이다.
- TDD 의 필요성을 느낌..
'RESTAPI' 카테고리의 다른 글
RESTAPI - Event API 개선 (0) | 2019.09.02 |
---|---|
RESTAPI - API_점검.md (0) | 2019.09.02 |
RESTAPI - 외부 설정 및 코드 변경 (0) | 2019.08.28 |
RESTAPI - Security - Spring Security OAuth2 Resource Server Config (0) | 2019.08.26 |
RESTAPI - Security - Spring Security - OAuth2 Authorization Server Config (0) | 2019.08.26 |
댓글