2.6.1 beforeEach( ) 함수와 스크롤 피로감
예제 2-13의 리팩터링은 코드 중복을 없앴지만 몇 가지 단점이 생겼다.
• it 테스트 부분만 보면 verifier가 어디에서 만들어졌는지 알기 어렵다. 이해하려면 위로 스크롤해야 한다.
• 어떤 규칙(rules)이 추가되었는지 이해하는 것도 마찬가지다. 어떤 규칙이 추가되었는지 확인하려면 it 테스트보다 한 단계 위로 올라가서 보거나 describe() 블록의 설명을 보아야 한다.
지금은 그렇게 나쁘지 않아 보일 수 있다. 하지만 시나리오가 늘어나면 구조가 점점 복잡해진다. 파일이 커지면 테스트 파일을 이해하기 위해(테스트 컨텍스트나 상태 값 등) 위아래로 스크롤해야 하는 불편함이 생길 수 있다. 이렇게 되면 테스트를 유지 관리하고 읽는 일이 단순히 읽는 행위가 아니라 번거로운 작업이 될 수 있다. 필자는 이러한 현상을 스크롤 피로감이라고 부른다.
이러한 중첩 구조는 테스트 결과를 보기에는 좋지만, 실제로 코드를 읽는 사람에게는 스크롤을 올렸다 내렸다 하는 것이 불편할 수 있다. 마치 웹 브라우저의 개발자 도구에서 CSS 스타일을 디버깅하는 것과 같다. 특정 태그의 글씨가 굵게 표시된 이유를 찾을 때, 그 스타일이 어디에서 적용되었는지 확인하려고 여러 레이어를 거슬러 올라가며 div 태그가 포함된 테이블의 여러 노드를 확인해야 하는 것처럼 말이다.