[SpringBoot] Given - When - Then Pattern

도리도리·2023년 11월 5일
0

SpringBoot

목록 보기
2/9
post-thumbnail

Given - When - Then Pattern

Given-When-Then 패턴에 대해서 대부분의 개발자가 이미 잘 알고 있으리라 생각이 된다. 필자는 그동안 테스트 코드 작성 시, Given-When-Then 기반의 테스트 코드를 작성하지 않았다. 그다지 중요하게 생각하지 않았고, 글을 쓰고 있는 지금 이 순간에도 반드시 지켜야 하는 규칙이라고는 생각하지 않는다. 하지만, 주니어 개발자 또는 테스트 코드를 처음 작성하는 개발자는 한번쯤은 시도해볼 만한 방법이라고 생각한다.

Given - When - Then Pattern 이란?

Given-When-Then 은 곧 [준비 - 실행 - 검증] 이다.

Given

테스트를 위해 준비를 하는 과정이다. 테스트에 사용하는 변수, 입력 값 등을 정의하거나, Mock 객체를 정의하는 구문도 Given에 포함한다.


참고로, Mockito를 사용하면서 when이라는 메서드를 사용하였는데, 해당 구문은 테스트를 위한 준비 과정이기 때문에 given에 포함되는 게 맞다.(Mockito의 메서드 이름이 when이라서 조금 헷갈리지만, 어쨌든 given 영역에 포함되어야 한다는 필자의 개인적인 의견...)

When

실제로 액션을 하는 테스트를 실행하는 과정이다.

할인된 금액을 리턴해주는 getDiscountedPrice 메서드를 실행한다. 테스트는 아주 심플하고 간단하다. 하나의 메서드만 수행하는 것이 바람직하기 때문에, 일반적으로 "When"은 테스트 코드에서 가장 심플한 구문이 될 것이다.

Then

마지막은 테스트를 검증하는 과정이다. 예상한 값, 실제 실행을 통해서 나온 값을 검증한다.

Given-When-THen에 대한 내용이 끝이다. 각자 알아서 잘 실천해보길 바란다.

profile
개발자에 꽃

0개의 댓글