컨트롤러 테스트는 HTTP 모양보다 서비스 위임을 확인한다

컨트롤러 단위 테스트에서는 실제 서버를 열지 않습니다. 메서드를 직접 호출하고, 서비스 mock이 올바르게 호출되는지를 봅니다.

Controller method

getHello() / sumNumbers()

라우팅 데코레이터보다 메서드의 입력과 반환을 확인합니다.

Mock service

AppService 대체

서비스 구현은 실행하지 않고, 반환값과 호출 인자만 고정합니다.

Assertion

반환값 + 호출 기록

컨트롤러가 가공 없이 서비스에 위임했는지 검증합니다.

반환값 검증

expect(result).toBe('Hello from Mock!')

위임 검증

expect(appService.sum).toHaveBeenCalledWith(5, 3)

핵심: 컨트롤러 단위 테스트의 질문은 “HTTP가 도는가”가 아니라 “컨트롤러가 올바른 값을 서비스에 넘기는가”입니다.