JEST MOCK CONTRACT

Mock은 구현 흉내가 아니라 계약 증거다

좋은 단위 테스트는 비즈니스 규칙, 의존성 계약, edge 입력, assertion 증거를 분리한다. mock이 실제 의존성과 다른 약속을 만들면 테스트는 빨리 지나가도 신뢰를 잃는다.

01 규칙 Given은 비즈니스 조건으로 시작

DB 상태보다 사용자가 만든 조건과 기대 결과를 먼저 고정한다.

02 계약 Mock 반환은 실제 provider와 같은 모양

Promise, 예외 타입, nullable 결과가 실제 의존성과 맞아야 한다.

03 경계 Edge case는 성공 케이스와 분리

없는 사용자, 중복 데이터, 권한 실패를 한 테스트에 섞지 않는다.

04 증거 Assertion은 결과와 호출을 함께 확인

toEqual, rejects, toHaveBeenCalledWith로 원인과 결과를 연결한다.