위키득계정 ↗
기술

Snapshooter

Snapshooter기술
분야
스냅샷 테스트
대상
닷넷 객체 결과
연동
xUnit과 NUnit 및 MSTest
기능
필드별 비교 제어
Snapshooter는 닷넷 테스트의 객체 결과를 스냅샷 파일과 비교하는 도구다. 기준과 다른 부분을 확인하면서 변동 필드의 제외나 별도 단언을 조합할 수 있다.

기준 결과를 보관하기

검사 결과를 스냅샷으로 남기고 다음 실행의 결과와 비교한다. 최초 파일을 만들었을 때는 그 내용을 사람이 검토해야 한다. 차이가 발생하면 실패 위치와 별도로 저장된 현재 결과를 살펴보고 의도한 변화인지 판단한다. 파일이 생성되었다는 이유만으로 올바른 기대가 정해지는 것은 아니다.

변동 필드 다루기

실행마다 달라지는 값은 전체 비교를 시끄럽게 만들 수 있다. Snapshooter는 경로를 사용해 필드를 제외하거나 개별 조건으로 확인하는 기능을 제공한다. 큰 값은 해시로 비교하도록 구성할 수도 있다. 다만 중요한 필드를 제외하면 해당 동작의 변화가 감춰지므로 비교 정책을 요구사항에 맞춰 정한다.

자동 빌드에서의 검사

기준 파일이 없는 경우 처음 결과가 생성되어 통과하는 흐름은 자동 빌드에서 누락을 놓칠 수 있다. 엄격한 모드를 사용하면 기준이 없는 검사를 실패로 다룰 수 있다. 기준 파일을 변경 이력과 함께 관리하고 갱신 내용을 검토한다. 스냅샷 검사는 결과의 변화 탐지에 유용하지만 결과 자체의 의미적 정확성을 모두 보장하지는 않는다.

관련 문서

ApprovalTests 닷넷 / Verify 스냅샷 도구 / Inline-snapshot / MSTest