Mocking boundary

단위 테스트는 의존성을 바꿔서 범위를 고정한다

UsersService의 판단만 검증하려면 DatabaseService를 실제로 호출하지 않고, TestingModule 안에서 예측 가능한 mock provider로 교체한다.

테스트 대상 UsersService 공개 메서드
대체 대상 DatabaseService 토큰
반환 고정 jest.fn() stub 값
행위 검증 호출 횟수와 인자

TestingModule 안에서 정리할 책임

isolated unit
1

provider 등록

테스트 대상 서비스와 필요한 의존성 토큰만 명시한다.

2

mock 주입

useValue로 실제 DB 구현을 가짜 객체로 바꾼다.

3

결과 단언

서비스가 돌려주는 값과 예외를 비즈니스 규칙 기준으로 본다.

4

호출 단언

DB 대역이 기대한 인자로 정확히 호출됐는지 확인한다.

상황
stub로 고정
mock으로 관찰
실패 신호
사용자 조회
id 1이면 사용자 반환
findOneUser(1)
조회 조건이 틀림
사용자 생성
가짜 id 99 반환
name, email 인자
저장 payload 누락