위키득계정 ↗
기술

Go-vcr

Go-vcr기술
분야
HTTP 기록과 재생
언어
Go
기록 자료
카세트 파일
확장
요청 매칭과 처리 훅
Go-vcr는 Go 테스트의 HTTP 상호작용을 기록하고 다음 실행에서 재생하는 라이브러리다. 외부 응답을 카세트 파일에 보관해 같은 조건의 회귀 검사를 구성하도록 돕는다.

기록을 이용한 반복 검사

외부 API를 매번 호출하면 네트워크와 서비스 상태에 따라 결과가 달라질 수 있다. Go-vcr는 실제 상호작용을 기록한 뒤 재생하여 검사 입력을 일정하게 만드는 방식을 제공한다. 재생 성공은 기록된 응답에 대한 동작을 확인한 결과이지 현재 외부 서버와의 호환성을 새로 확인한 결과는 아니다.

요청 매칭과 수명 주기

재생할 요청을 어떤 기록과 연결할지 사용자 정의 매칭으로 조절할 수 있다. 기준을 너무 느슨하게 만들면 서로 다른 요청에 같은 응답이 사용될 수 있다. 기록기를 정상적으로 종료해 자료가 저장되도록 하고 카세트의 변경도 검토한다. 주요 버전을 옮길 때는 기존 기록을 다시 만들어야 할 수 있다.

민감 정보와 처리 시점

요청과 응답에는 인증 정보가 포함될 수 있으며 기본 기록에 그대로 남을 수 있다. 훅으로 저장 전에 제거하거나 대체하도록 구성한다. 캡처 직후 바꾸는 것과 디스크 저장 직전에 바꾸는 것은 테스트 코드가 보는 값에도 차이를 만든다. 실제 요청을 통과시키는 선택 기능도 있으므로 모든 실행이 외부 연결 없이 이루어진다고 가정하지 않는다.

관련 문서

VCRpy / VCR Ruby 라이브러리 / Betamax Python 라이브러리 / GoMock