티스토리 뷰

RESTAPI

RESTAPI - 기존 테스트 수정

사용자 엔꾸꾸 2019. 9. 4. 22:25

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 의 필요성을 느낌..
댓글
댓글쓰기 폼
공지사항
Total
75,658
Today
174
Yesterday
201
링크
TAG
more
«   2021/12   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
글 보관함