컴파일 실패를 성공 조건으로 삼기
실패를 기대하는 각 소스를 개별적으로 컴파일하고 나온 진단을 옆의 기대 출력 파일과 비교한다. 컴파일이 실패했더라도 다른 이유로 실패했다면 기대에 맞는 결과가 아니다. 반대로 거부되어야 할 코드가 컴파일되면 검사 실패로 처리한다. 사용자에게 전달할 오류의 내용과 위치를 다루는 데 의미가 있다.
성공 사례와의 구분
통과를 기대하는 사례는 컴파일이 성공하고 생성한 프로그램의 main 실행에서 패닉이 발생하지 않아야 한다. 이를 실패 기대 사례와 함께 묶을 수 있다. 하지만 실제 서비스의 모든 실행 경로를 대신 검사하는 기능은 아니다. API의 사용 계약과 일반 동작 검사를 목적에 맞게 나눈다.
진단 기준 갱신
기대 출력이 없을 때는 작업용 디렉터리에 실제 진단을 저장하며 직접 덮어쓰는 선택도 제공한다. 갱신한 결과는 변경 내역을 검토해 승인한다. 컴파일러 버전과 표준 라이브러리 소스 설치 여부에 따라 진단 모양이 달라질 수 있으므로 개발 환경과 자동 빌드의 기준을 맞춰 불필요한 차이를 줄인다.
관련 문서
Rstest / Insta 스냅샷 테스트 / Nextest / Proptest