결과를 미리 정한다
조회 메서드가 DB 대신 예측 가능한 사용자 데이터를 돌려줍니다.
findOneUser: jest.fn(() => user)
UsersService를 테스트할 때 DatabaseService를 실제로 실행하지 않습니다. 대신 반환값과 호출 기록을 통제하는 가짜 객체를 주입합니다.
조회 메서드가 DB 대신 예측 가능한 사용자 데이터를 돌려줍니다.
생성 메서드가 몇 번, 어떤 인자로 호출됐는지 단언합니다.
| 역할 | 테스트에서 하는 일 | Jest 단서 |
|---|---|---|
| 대상 | UsersService의 분기와 반환값만 검증 | module.get(UsersService) |
| 가짜 의존성 | DatabaseService 토큰을 mock 객체로 교체 | provide + useValue |
| 초기화 | 테스트 사이 호출 기록을 비움 | jest.clearAllMocks() |
핵심: Stub은 “무엇을 돌려줄지”, Mock은 “어떻게 불렸는지”를 테스트 안에서 통제하게 해줍니다.