로컬 서버의 역할
외부 서버 대신 실제로 접근할 수 있는 로컬 시험 서버를 띄운다. 클라이언트 호출 함수를 직접 대체하는 모킹과 달리 HTTP 요청을 서버에서 받는다. 다만 실제 운영 서버와 프로토콜 지원 범위까지 같다고 가정해서는 안 된다.
예상 요청의 정의
경로뿐 아니라 메서드, 헤더와 쿼리, 본문 등을 조건으로 정할 수 있다. 계속 응답하는 요청과 한 번만 처리하는 요청을 구분하며 일회 요청에는 순서 제약도 줄 수 있다. 재시도와 연속 작업을 시험할 때 호출 순서도 확인하는 데 쓰인다.
응답과 실행 수명
상태 코드와 헤더, 본문을 지정하거나 함수로 응답을 만들 수 있다. pytest 외부에서는 컨텍스트 관리자로 서버의 시작과 종료를 다룬다. 시험이 끝난 뒤 서버를 정리해야 다음 시험의 포트와 상태에 영향을 줄 가능성을 줄인다.