서비스 테스트는 규칙을, 컨트롤러 테스트는 위임을 검증한다

같은 Jest를 쓰더라도 테스트 대상이 바뀌면 가짜로 둘 의존성과 단언할 내용도 달라집니다.

Service unit

비즈니스 계산, 예외 분기, repository 호출 조건을 직접 검증합니다.

Controller unit

요청 값을 서비스에 넘기고 서비스 결과를 그대로 반환하는지 확인합니다.

테스트 대상mock으로 둘 것단언할 것
ServiceDB, repository, 외부 API client반환값, 예외, 의존성 호출 조건
ControllerService provider서비스 호출 인자와 컨트롤러 반환값
Guard / PipeExecutionContext, 입력 객체허용 여부, 변환 결과, 예외

핵심: 테스트 이름을 먼저 정하지 말고, 검증하려는 책임이 어느 계층에 있는지 먼저 고릅니다.