Repolode
mitsuhiko

mitsuhiko/insta

저장된 기준 스냅샷과 값을 비교하고 변경 사항을 검토하는 도구를 제공하는 Rust용 스냅샷 테스트 라이브러리입니다.

스타
2,979
포크
168
열린 이슈
78
마지막 커밋
15일 전

어떤 프로젝트인가요?

insta는 Rust용 스냅샷 테스트 라이브러리입니다. 스냅샷 테스트는 값이 저장된 기준과 일치하는지 확인합니다. assert_eq!와 비슷하지만, 큰 구조체나 자주 바뀌는 출력처럼 복잡한 값에 적합합니다. 스냅샷이 바뀌면 테스트가 실패하며, 새 출력을 검토하고 적용할 수 있습니다.

스냅샷은 별도의 .snap 파일이나 소스 파일 안에 인라인으로 저장할 수 있습니다. 함께 제공되는 cargo-insta 명령줄 도구로 스냅샷을 검토하고 업데이트할 수 있습니다. VS Code 확장 프로그램은 .snap 파일의 구문 강조, 스냅샷 검토, 정의로 이동 기능을 제공합니다.

insta는 diff 생성에 similar 크레이트를 사용하며, similar-asserts 크레이트는 일반 assert_eq! 비교에서도 동일한 인라인 diff 출력을 제공합니다.

핵심 기능

  • 01Debug 및 기타 직렬화 가능한 출력에 대한 스냅샷 어설션
  • 02Rust 소스 파일에 직접 저장하는 인라인 스냅샷
  • 03스냅샷 검토 및 업데이트를 위한 cargo-insta 명령줄 도구
  • 04.snap 파일 보기 및 검토를 위한 VS Code 확장 프로그램
  • 05similar 라이브러리를 사용해 비교 실패 시 인라인 diff 제공

활용 사례

  • 기댓값을 일일이 작성하기 번거로운 복잡한 구조체나 파서 출력 테스트
  • 시간이 지나며 바뀌는 출력에서 의도치 않은 변경 감지
  • 코드 리뷰 과정에서 스냅샷 변경 사항 검토

빠른 시작

  1. 1

    Cargo.toml에 insta crate를 dev-dependency로 추가합니다

  2. 2

    값에 insta::assert_debug_snapshot!을 호출하는 테스트를 작성합니다

  3. 3

    스냅샷을 검토할 수 있도록 함께 제공되는 cargo-insta 도구를 설치합니다

포함된 컬렉션

토픽

자주 묻는 질문

insta은(는) 무엇인가요?
저장된 기준 스냅샷과 값을 비교하고 변경 사항을 검토하는 도구를 제공하는 Rust용 스냅샷 테스트 라이브러리입니다. insta는 Rust용 스냅샷 테스트 라이브러리입니다. 스냅샷 테스트는 값이 저장된 기준과 일치하는지 확인합니다. assert_eq!와 비슷하지만, 큰 구조체나 자주 바뀌는 출력처럼 복잡한 값에 적합합니다. 스냅샷이 바뀌면 테스트가 실패하며, 새 출력을 검토하고 적용할 수 있습니다.
insta은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
insta은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
insta은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. insta의 마지막 커밋은 2026년 10월 10일입니다.
insta은(는) 어디에 사용할 수 있나요?
기댓값을 일일이 작성하기 번거로운 복잡한 구조체나 파서 출력 테스트 시간이 지나며 바뀌는 출력에서 의도치 않은 변경 감지 코드 리뷰 과정에서 스냅샷 변경 사항 검토
insta는 어떻게 설치하나요?
Cargo.toml에 insta crate를 dev-dependency로 추가합니다 값에 insta::assert_debug_snapshot!을 호출하는 테스트를 작성합니다 스냅샷을 검토할 수 있도록 함께 제공되는 cargo-insta 도구를 설치합니다
insta은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/mitsuhiko/insta

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트