다음 예제부터는 다시 fakeRule() 함수를 test() 구역 안으로 옮겨서 진행하겠다. 필자는 개인적으로 함수나 변수 등 코드가 서로 인접한 곳에 있는 형태를 더 선호하는데, 그 이유는 추후에 설명하겠다.
중첩 구조를 사용하면 특정 시나리오 내 여러 가지 기대 동작을 테스트할 수 있다. 1.3절에서 소개한 종료점은 여러 개가 될 수 있는데(반환 값, 상태 값 변경, 서드 파티 호출), 하나의 시나리오 안에 각각의 종료점을 별도의 테스트로 분리하여 가독성을 높일 수 있다.