가짜 객체 준비
반환값과 호출 추적 함수를 먼저 정합니다.
mock은 편하지만 호출 기록이 남습니다. 테스트마다 같은 상태에서 시작하도록 생성과 정리 지점을 분리해야 합니다.
반환값과 호출 추적 함수를 먼저 정합니다.
실제 provider 대신 useValue로 mock을 주입합니다.
서비스나 컨트롤러 메서드를 직접 호출합니다.
반환값과 mock 호출 인자를 함께 확인합니다.
다음 테스트를 위해 clearAllMocks를 실행합니다.
테스트하려는 클래스 하나를 먼저 정합니다.
DB, 네트워크, 파일 시스템은 mock으로 막습니다.
테스트 사이 호출 기록이 섞이지 않게 합니다.
핵심: 좋은 단위 테스트는 빠르게 끝나는 것만이 아니라, 매 실행마다 같은 조건에서 같은 이유로 통과해야 합니다.