더북(TheBook)

굵게 표시한 코드를 살펴보자.

첫 번째 beforeEach() 함수에서는 각 테스트 케이스마다 새로 생성될 PasswordVerifier1 인스턴스24를 설정하고 있다. 다음 beforeEach에서는 특정 시나리오에 해당하는 모든 테스트 케이스마다 fakeRule() 함수를 만들어 이를 새로운 verifier에 추가한다. 다른 테스트 시나리오가 있었다면 describe('with a failing rule') 구역 내 beforeEach() 함수는 실행되지 않겠지만, 그 위에 위치한 첫 번째 beforeEach() 함수는 실행된다.

테스트가 더 짧아진 것을 볼 수 있는데, 이는 테스트를 더 읽기 쉽고 유지 보수하기 쉽게 만드는 이상적인 구조다. 각 테스트에서 변수 선언 및 할당하는 중복 부분을 없애고 상위의 공통 변수인 verifier를 만들어 재사용이 가능하도록 변경했다.

그러나 예제 2-13에는 몇 가지 주의할 점이 있다.

안쪽 두 번째 beforeEach() 함수 내에서 errors 배열을 초기화하는 부분이 없다. 이는 나중에 사이드 이펙트가 발생할 수 있다.

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