단계
인수 테스트에서 했던 것처럼 이제 사용자 스토리를 단계들의 목록으로 표현할 수 있다. 각 단계는 액터의 메서드이며, 각 단계 내부에서 액터는 현재의 액션을 사용해 애플리케이션과 상호작용한다.
액터의 단계를 올바르게 작성하는 것은 매우 섬세한 작업이다. 여기서 고려해야 할 것이 두 가지 있다. 한편으로는 액터 단계를 시스템과 인간의 실제 상호작용에 가능한 한 가깝게 유지하면서, 다른 한편으로는 시스템의 정확성을 검증하기 위한 모든 단언문을 액터의 단계 내부에 유지하는 것이다. 시스템이 예상대로 작동하면 테스트는 성공이고, 그렇지 않으면 실패다.
액터의 단계를 단순하고 깔끔하게 유지하는 것이 좋다. 이를 위해 애플리케이션을 질의하는 단계와 애플리케이션을 변경하는 단계를 분리한다. 여기서는 항목을 추가하는 단계에는 단언문을 포함하지 않고, 목록을 확인하는 단계는 애플리케이션의 어떤 것도 변경하지 않는다.
또한 모든 단언문을 단계들 안에 유지하는 것도 매우 중요하다. 최소한 도메인 용어로 표현할 수 있는 단언문을 단계 안에 유지해야 한다. 이 말은 HTTP와 도메인 전용 액션 모두에 대해 동일한 검증이 작동한다는 뜻이다. 프로토콜에 따라 서로 다른 단언문이 필요하다면, 어떤 기술적 세부 사항을 테스트하고 있거나 비즈니스 로직이 기술적 어댑터를 통해 유출됐다는 뜻이다.