더북(TheBook)

2.5.8 두 가지 제스트 스타일

앞서 같이 살펴보았듯이, 제스트로 테스트를 작성하는 방식은 크게 두 가지로 나눌 수 있다. test() 혹은 it() 함수를 사용하는 방식과 계층 구조를 이루는 describe() 함수 중심의 방식이다.

describe() 함수 기반의 제스트 구문은 가장 오래된 자바스크립트 테스트 프레임워크 중 하나인 자스민에서 비롯되었다. describe() 함수를 사용하는 방식의 역사는 루비(Ruby) 언어의 RSpec 루비 테스트 프레임워크로 거슬러 올라간다. 이러한 중첩 스타일은 보통 행동 주도 개발(Behavior-Driven Development, BDD) 스타일이라고 한다.20

이 두 가지 스타일을 원하는 대로 섞어서 사용할 수 있다(필자도 그렇게 한다). 테스트 대상과 테스트 상황이 명확할 때는 test() 구문을 사용하는 것이 간편하다. 반면에 동일한 시나리오에서 동일한 진입점에 대해 여러 결과를 검증할 때는 describe() 구문이 도움이 된다. 필자가 두 가지 스타일을 모두 소개하는 이유는 상황에 따라 간결한 test() 구문을 사용하기도 하고, 더 복잡한 계층 구조를 표현할 때는 describe() 구문을 사용해서 계층 구조를 만들 때도 있기 때문이다. 테스트 복잡성과 표현의 필요성에 따라 적절한 방식을 선택하면 된다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.