콘텐츠로 건너뛰기

JUnit5 @Nested, @DisplayName 활용

시작

JUnit5에서 개인적으로 가장 많이 활용하고 있는 기능은 @Nested 이다.
예전 포스트라서 약간 view가 깨지는 부분도 있지만 이런 테스트케이스는 어떨까?(또는 옛날사이트)에서도 많이 고민했던 부분을 JUnit5에서 공식적으로 해결해주었다.

 

소스 코드

간단한 분기문이 있는 코드를 만들어본다. 실제 서비스에서는 훨씬 복잡한 코드가 나올 것이다.

일반적인 테스트 코드

일반적으로 해당 클래스의 각 메소드와 그 메소드 내의 분기문을 결합해서 각각 테스트를 진행하게 된다.
테스트 메소드의 네이밍은 일반적으로 저리 간단하지는 않다.

 옛날 블로그 재탕

JUnit5 @Nested 활용

JUnit5 @DisplayName 추가

추가로 @DisplayName 까지 활용해 보자. 한글로 메소드이름을 지으면 CI툴에서 쉽게 볼 수 있어서 한 때 유행한 적이 있었다.
내가 만드는 테스트코드 그리고 한글코드(또는 옛날사이트)
그런데 실제로 사용해보면 좀 불편한 점들이 있었다.

  • 코드 검색시에 누락됨
  • 한글 특성상 카멜케이스를 적용하기 힘들기 때문에 _를 많이 써야함 (userCoupon -> 사용자_쿠폰)
  • 네이밍 상 일관성 부족 (User -> 유저, 회원, 사용자 등)

그래서 한 때 유행에도 불구하고 결국엔 영어 네이밍으로 모두 귀환했는데, 의외로 @DisplayName을 사용하면 꽤 괜찮다는 생각을 했다.

위의 예는 아니지만, 실제로 서비스에서 사용하고 있는 테스트 결과를 보면 이렇게 나온다.
테스트결과

마무리

혹시 위처럼 테스트를 만드는 것 보다는 코드를 더 간결하게 하는 것이 중요하다고 생각할지도 모르겠다.
코드를 간결하게 만들 수 있는 방법은 언제나 고민해봐야 할 문제이다.
하지만 예전에 테스틀 만들면서 고민하던 부분들이 JUnit5에서 지원되는 것으로 만족해서 포스팅을 남긴다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다