위키득계정 ↗
기술

Testify

Testify기술
분야
Go 테스트 보조
구성
assert와 require 등
기본 연동
testing 패키지
주의
suite 병렬 검사 미지원
Testify는 Go의 기본 테스트 환경에 단언과 객체 대역, 테스트 모음 기능을 더하는 패키지 모음이다. 검사 실패를 보고하는 방식과 실행 중단 여부를 구분해 사용할 수 있다.

단언의 실패 처리

assert 계열은 조건의 성공 여부를 반환하고 기본 테스트 출력에 실패를 기록한다. require 계열은 조건을 만족하지 않으면 현재 테스트를 중단한다. 뒤의 검사가 유효한 준비 상태에 의존하는지에 따라 선택할 수 있다. 실패를 기록하는 것과 현재 실행을 끝내는 것은 서로 다른 동작이다.

대역과 테스트 모음

mock 패키지는 의존 객체의 동작과 예상 호출을 구성하게 한다. 실제 대상이 대역을 사용한 뒤 기대가 충족되었는지 확인해야 한다. suite 패키지는 구조체에 준비와 정리, 여러 검사를 묶는 흐름을 제공한다. 이 기능들은 Go 기본 검사를 완전히 대체하는 별개 실행기라기보다 기존 검사에 결합하는 보조 구성이다.

고루틴과 실행 범위

require의 중단 기능은 테스트 함수를 실행하는 고루틴에서 사용해야 한다. 다른 고루틴의 오류는 안전하게 주 실행 흐름으로 전달해 확인하는 구성이 필요하다. suite 패키지는 병렬 테스트를 지원하지 않는다는 제약도 있다. 단언 문법이 간결해져도 데이터 격리와 요구사항 확인은 별도로 설계해야 하며 필요한 패키지만 선택해 사용하는 편이 좋다.

관련 문서

GoMock / Shouldly / AssertJ / Moq