클라이언트 계층의 스텁
여러 Ruby HTTP 라이브러리의 낮은 계층에서 요청을 제어한다. 지원하는 클라이언트 사이에서 시험 정의를 재사용하는 데 도움이 된다. 다만 라이브러리별 지원 범위가 같지는 않으므로 사용하는 호출 경로가 연동 대상인지 확인해야 한다.
표현과 의미의 비교
주소와 헤더의 서로 다른 표현을 고려해 요청을 비교하는 기능을 제공한다. 본문은 문자열이나 구조화된 값 등으로 조건을 정할 수 있다. JSON을 문자열로 비교하면 공백과 키 순서까지 영향을 줄 수 있어 의미가 같은 데이터의 비교와 구별해야 한다.
요청의 검증
스텁은 어떤 응답을 줄지 정하고 기대 조건은 어떤 호출이 발생해야 하는지 확인한다. 응답을 받은 사실만으로 필요한 요청 구성이 모두 검증되는 것은 아니다. 시험의 목적에 맞게 요청 본문과 헤더, 호출 조건을 구체화한다.
관련 문서
VCR Ruby 라이브러리 / Nock / WireMock / HTTP