반응형
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와 같이 심플하게 설명할수록 좋다.
이 방식은 다음과 같은 장점이 있다.
- 테스트 코드를 계층 구조로 만들어 준다.
- 테스트 코드를 추가하거나 읽을 때 스코프 범위만 신경쓰면 된다.
- "빠뜨린" 테스트 코드를 찾기 쉽다.
- 높은 테스트 커버리지가 필요한 경우 큰 도움이 된다.
- 재미있다. 중독성이 있다.
식상하게 쓰지말고 재미있게 테스트코드 짜보자!
반응형