2.5.8 두 가지 제스트 스타일
앞서 같이 살펴보았듯이, 제스트로 테스트를 작성하는 방식은 크게 두 가지로 나눌 수 있다. test() 혹은 it() 함수를 사용하는 방식과 계층 구조를 이루는 describe() 함수 중심의 방식이다.
describe() 함수 기반의 제스트 구문은 가장 오래된 자바스크립트 테스트 프레임워크 중 하나인 자스민에서 비롯되었다. describe() 함수를 사용하는 방식의 역사는 루비(Ruby) 언어의 RSpec 루비 테스트 프레임워크로 거슬러 올라간다. 이러한 중첩 스타일은 보통 행동 주도 개발(Behavior-Driven Development, BDD) 스타일이라고 한다.20
이 두 가지 스타일을 원하는 대로 섞어서 사용할 수 있다(필자도 그렇게 한다). 테스트 대상과 테스트 상황이 명확할 때는 test() 구문을 사용하는 것이 간편하다. 반면에 동일한 시나리오에서 동일한 진입점에 대해 여러 결과를 검증할 때는 describe() 구문이 도움이 된다. 필자가 두 가지 스타일을 모두 소개하는 이유는 상황에 따라 간결한 test() 구문을 사용하기도 하고, 더 복잡한 계층 구조를 표현할 때는 describe() 구문을 사용해서 계층 구조를 만들 때도 있기 때문이다. 테스트 복잡성과 표현의 필요성에 따라 적절한 방식을 선택하면 된다.