위키득계정 ↗
기술

Go-sqlmock

Go-sqlmock기술
분야
데이터베이스 드라이버 대역
언어
Go
대상 인터페이스
database sql driver
기본 정책
기대 호출 순서 확인
Go-sqlmock는 Go의 SQL 드라이버 인터페이스를 구현한 테스트 대역이다. 실제 데이터베이스 연결 없이 쿼리와 인자, 반환 행과 오류, 트랜잭션 흐름을 검사하도록 돕는다.

연결 없이 동작 구성하기

데이터베이스 접근 코드가 성공이나 오류에 어떻게 반응하는지 좁혀 확인할 때 사용한다. 쿼리의 결과 행이나 실행 오류, 커밋과 롤백에 관한 기대를 준비할 수 있다. 대상 코드를 실행한 뒤 기대한 호출이 모두 수행되었는지 확인한다. 결과를 설정하는 것만으로 누락된 작업까지 검증한 것은 아니다.

SQL 문자열과 인자 매칭

기본 쿼리 매처는 기대 SQL을 정규식으로 해석한다. 완전한 문자열 동등 비교를 쓰는 구성도 선택할 수 있다. 따라서 특수 문자가 포함된 SQL을 평문처럼 전달하면 의도와 다른 매칭이 생길 수 있다. 별도의 인자 매처로 단순 동등 비교가 어려운 값의 조건을 표현할 수도 있다.

실제 데이터베이스와의 차이

드라이버 대역은 실제 서버의 SQL 문법과 실행 계획, 잠금 특성을 보장하지 않는다. 쿼리 문자열이 기대에 맞아도 대상 데이터베이스에서 유효한지는 통합 검사로 확인해야 한다. 호출 순서 검증이 기본이므로 병렬 코드의 기대 구성도 주의한다. 저장소에는 유지관리자 모집 안내가 있어 도입 시 실제 유지 상태와 환경 호환성을 점검한다.

관련 문서

GoMock / Testify / Database Rider / Testcontainers 자바