소스 파일 안의 tests 모듈에서 내부 구현까지 빠르게 검증합니다.
유닛 테스트는 코드 가까이에서 세부 동작을 확인하고, 통합 테스트는 공개 API를 외부 사용자처럼 호출합니다.
#[cfg(test)]는 cargo test 때만 테스트 모듈을 컴파일해 일반 빌드 산출물에 영향을 주지 않게 합니다.
소스 파일 안의 tests 모듈에서 내부 구현까지 빠르게 검증합니다.
같은 모듈의 자식 테스트 모듈은 부모의 비공개 항목을 볼 수 있습니다.
tests 디렉터리에서 라이브러리 크레이트를 외부처럼 사용합니다.
tests/common/mod.rs처럼 공통 준비 코드를 테스트 크레이트에 포함합니다.
검사하려는 동작이 내부 세부인지 공개 API인지 구분합니다.
내부는 모듈 안, 외부 관점은 tests 디렉터리에 둡니다.
반복 준비 코드는 테스트 전용 모듈로 분리합니다.
테스트 조직화의 핵심은 어떤 수준의 약속을 검증하는지에 따라 위치와 접근 범위를 맞추는 것입니다.