Go의 좁은 통합 테스트

배경.

최근에 새로운 일을 시작한 저는 여전히 건강한 양의 사기꾼 증후군을 앓고 있는 전조등의 사슴이 되는 단계에 있습니다. 코드베이스에 익숙해지지만 여전히 가치를 가져오려고 노력하면서 가능한 한 빨리 도메인을 흡수하려고 합니다. 내 관심을 끈 코드베이스 영역 중 하나는 integration tests라이브 환경에서 실행 되는 영역이었습니다 .

이것은 내가 유일하게 해본 것처럼 개인적으로 처음이었습니다.

  • 표를 구동 하여 테스트 주장을 google/go-cmp.
  • docker-compose및 PAW/Postman을 사용한 수동 통합 테스트 .

토론 후에 나는 두 가지 접근 방식을 구별할 수 있는 이름을 찾기 위해 검색을 했고 Martin Fowler가 바로 이것에 대해 논의한 기사를 발견 했습니다.

좁은 통합 테스트

- 내 서비스에서 별도의 서비스와 통신하는 코드 부분만 실행

- 프로세스 또는 원격에서 해당 서비스의 테스트 더블을 사용합니다.

- 따라서 종종 단위 테스트보다 더 크지 않은 좁은 범위의 테스트로 구성됩니다(일반적으로 단위 테스트에 사용되는 동일한 테스트 프레임워크로 실행됨).

광범위한 통합 테스트

- 실질적인 테스트 환경과 네트워크 액세스가 필요한 모든 서비스의 라이브 버전 필요

- 상호 작용을 담당하는 코드뿐만 아니라 모든 서비스를 통해 코드 경로를 실행합니다.

실천하기.

올 ory/dockertest와 mountebank! Dockertest를 사용하면 테스트 스위트 내에서 도커 컨테이너를 생성할 수 있고 mountebank를 사용하면 "임포스터"라고 하는 스텁 데이터를 사용하여 이러한 외부 종속성에 대한 테스트 더블을 생성할 수 있습니다. 우리가 해야 할 일은

  • dockertest를 사용하여 주어진 임포스터 파일로 mountebank 도커 컨테이너를 시작하십시오.
  • 새로 생성된 도커 컨테이너에 있는 임포스터의 주소와 포트를 외부 서비스 클라이언트에 전달합니다.

이것은 사기꾼의 아주 기본적인 예이지만 , 로 /test요청 GET하면 상태 200을 반환합니다.

다음은 임포스터로 로드된 컨테이너를 생성하고 이에 대해 테스트 스위트를 실행하는 예입니다.

Suggested posts

내가 가장 많이 사용하는 코딩 리소스

내가 가장 많이 사용하는 코딩 리소스

이번 주에 저는 일일 이메일 목록의 회원으로부터 이메일을 받았습니다. 그들은 알고 싶어했습니다. 매일, 매주, 매월 어떤 리소스를 방문합니까? 좋은 질문입니다! 제 작업 흐름과 제가 사용하는 주요 리소스에 대한 통찰력을 공유하게 되어 기쁩니다.

하이퍼모던 터미널 도구 상자

하이퍼모던 터미널 도구 상자

2023년에 표준을 설정하는 터미널, 셸 및 명령줄 도구. 모든 개발자는 터미널을 사용합니다. 어떤 사람들에게는 전체 작업 흐름이 터미널입니다 이 게시물에서는 2023년에 표준을 설정하는 터미널, 셸 및 명령줄 도구인 Hypermodern Terminal Toolbox를 소개합니다 터미널 에뮬레이터로서의 Kitty Kitty는 터미널 에뮬레이터입니다. 그놈 터미널의 대안입니다 , Alacritty 또는 Windows 터미널.

Related posts

위험한 대화

위험한 대화

우리가 이 행성에서 계속 번성하고 싶다면 위험한 대화를 해야 할 것입니다. 우리가 한 것, 우리가 하고 있는 것, 그리고 현재 우리가 계속하기로 설정한 것(또는 할 계획인 것)에 도전하는 것들.

느린 침식: 사람들이 경력을 낭비하는 방식 공개

느린 침식: 사람들이 경력을 낭비하는 방식 공개

오늘날과 같이 급변하고 경쟁이 치열한 세상에서 경력은 개인의 성장, 재정적 안정 및 전반적인 삶의 만족도에 중요한 역할을 합니다. 그러나 많은 사람들은 침체와 불만족의 끊임없는 순환에 휩싸여 직업 생활에서 점차 쇠퇴하고 있습니다.

조던 닐리의 살인과 "애국적" 인종차별의 문제

미국은 인종차별적 행동을 좋은 미국인이 되는 것과 동일시하지 않는 필수적인 조치를 취할 수 있습니까?

조던 닐리의 살인과 "애국적" 인종차별의 문제

[방아쇠 경고: 이 에세이에는 Jordan Neely의 살인자를 칭찬하는 사람들의 스크린 샷이 포함되어 있습니다.] 법 집행관은 마침내 그리고 아마도 마지못해 죽을 때까지 Jordan Neely를 질식시킨 사람인 Daniel Penny를 살인 혐의로 기소했습니다.

그 위협 아카이브: Vol 7 블랙 바스타

그 위협 아카이브: Vol 7 블랙 바스타

오늘날의 상호 연결된 세계에서 사이버 공격의 위협은 그 어느 때보다 만연해 있습니다. 사이버 범죄자와 국가 행위자는 지속적으로 취약점을 악용하고 귀중한 데이터를 도용하여 모든 규모의 조직에 상당한 위험을 초래합니다.