본문 바로가기

[SPRING]/Junit5

[Junit5 BDD방법론]식상하게 테스트코드짜지말고 재밌게 테스트코드짜자

반응형

Junit5 BDD 방법론

Junit5 이용시 @DisplayName 어노테이션을 이용해 어떤 테스트인지 명시하는 경우가 많다.
나는 보통 'ㅇㅇ테스트'로 많이 적었는데 오늘 블로그를 보다가 좋은 글이 있어 남긴다.

출처 https://johngrib.github.io/wiki/junit5-nested/

이런 블로그글이 있더라... 띠용!

사진만봐도 벌써 보기도 편하고 재밌어보인다. 이게 뭘까하고 알아보니 BDD 방법론이라고 한다.

TDD방법론은 유명해져 많은 사람들이 알고 있을 것이다.
Test Driven Development의 약자로
테스트 단위가 함수 단위로 거의 모든 함수들이 테스트에 포함된다고 볼 수 있다.

그렇다면 BDD 방법론은 뭘까
BDD 방법론은 Behaviour Driven Development의 약자로
테스트 단위가 행동(시나리오,흐름)의 단위로 테스트 케이스를 작성하며 모든 함수의 테스트를 권장하지 않는다.


다른 BDD 패턴인 Given - When - Then과 비슷한 철학을 갖고 있지만 미묘하게 다른 점이 있다.

Describe - Context - It 은 상황을 설명하기보다는 테스트 대상을 주인공 삼아 행동을 더 섬세하게 설명하는 데에 적합하다.

Describe, Context, It 세 단어가 핵심 키워드.

키워드 설명
Describe 테스트 대상이 되는 클래스, 메소드 이름을 명시한다.
Context 테스트할 메소드에 입력할 파라미터를 설명한다.
It 테스트 대상 메소드가 무엇을 리턴하는지 설명한다.

영어로 Context문을 작성할 때에는 반드시 with 또는 when으로 시작하도록 한다.
It 구문은 It returns true, It responses 404와 같이 심플하게 설명할수록 좋다.
이 방식은 다음과 같은 장점이 있다.

  • 테스트 코드를 계층 구조로 만들어 준다.
  • 테스트 코드를 추가하거나 읽을 때 스코프 범위만 신경쓰면 된다.
  • "빠뜨린" 테스트 코드를 찾기 쉽다.
    • 높은 테스트 커버리지가 필요한 경우 큰 도움이 된다.
  • 재미있다. 중독성이 있다.

식상하게 쓰지말고 재미있게 테스트코드 짜보자!

반응형