위키득계정 ↗
기술

Mockery

Mockery기술
분야
테스트 대역 코드 생성
언어
Go
입력
인터페이스와 설정
구성
템플릿 기반 생성
Mockery는 Go 인터페이스를 분석해 테스트용 대역 구현을 생성하는 도구다. 반복적인 구현 코드를 줄이고 설정과 템플릿으로 생성 대상과 표현 방식을 관리한다.

직접 구현하는 반복 줄이기

인터페이스를 사용하는 코드를 검사하려면 같은 메서드를 가진 대역이 필요하다. Mockery는 인터페이스 정보를 읽고 그 구현을 만드는 작업을 자동화한다. Testify 계열 대역 등 제공되는 방식이나 사용자 정의 템플릿을 선택할 수 있다. 생성기와 생성된 객체의 실행 역할은 구분해야 한다.

설정과 생성 결과 관리

YAML 중심의 구성으로 패키지와 인터페이스를 선택하고 출력 방식을 관리한다. 템플릿에는 인터페이스의 타입 정보를 활용할 수 있다. 대상 인터페이스가 바뀌었는데 결과를 다시 만들지 않으면 테스트용 구현이 어긋날 수 있다. 생성 도구와 템플릿 버전을 함께 관리하고 생성한 차이도 검토한다.

생성이 대신하지 않는 일

대역 코드가 만들어졌다고 어떤 응답이나 호출을 기대할지가 자동으로 정해지는 것은 아니다. 테스트 작성자가 필요한 계약을 설정하고 검사해야 한다. 모든 내부 호출을 고정하면 구현 변경에 취약해질 수 있다. 주요 버전 사이에는 설정과 생성 흐름 차이가 있을 수 있으므로 이전 절차를 확인하고 실제 의존 서비스의 동작은 통합 검사로 보완한다.

관련 문서

Testify / GoMock / Mockito / Moq