더북(TheBook)

2.5.1 준비-실행-검증 패턴

예제 2-3의 테스트 코드는 준비(Arrange)-실행(Act)-검증(Assert)의 AAA 패턴17으로 작성되었다. 보통 테스트 코드를 작성할 때 ‘테스트에 필요한 변수를 초기화하는 부분이 너무 복잡하지 않은가?’라거나 ‘테스트 실행은 어떻게 해야 할까?’라는 고민을 많이 한다. AAA 패턴을 사용하면 이러한 고민을 쉽게 해결할 수 있다.

테스트에 필요한 변수나 함수를 초기화하는 준비 단계에서는 결과(passed)를 false로 반환하고 그 이유를 reason 프로퍼티에 싣는 fakeRule() 함수를 생성한다. 다음으로 비밀번호에 해당하는 첫 번째 매개변수와 함께 verifyPassword()fakeRule() 함수를 전달한다. 검증 단계에서는 준비 단계에서 설정한 reason 프로퍼티의 'fake reason'이 에러 메시지와 일치하는지 검증한다. toMatch(/string/)은 정규 표현식을 사용하여 문자열 일부를 찾는데, 이는 toContain('fake reason')과 기능이 같다.

테스트를 작성하거나 수정한 후 수동으로 제스트를 실행하는 것은 꽤나 번거롭다. 설정 파일을 약간 수정하여 제스트가 자동으로 돌아가게 구성해 보자. ch2-first-test 폴더 내 위치한 package.json 파일을 열어 scripts를 다음과 같이 수정해 보자.

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