강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

jhkim님의 프로필 이미지
jhkim

작성한 질문수

Slack 클론 코딩[백엔드 with NestJS + TypeORM]

유닛 테스팅 하기

QueryBuilder Mocking 예제를 알 수 있을까요?

작성

·

526

0

구글링을해봐도 도저히 나오지 않아 QueryBuilder를 어떻게 모킹해야할 지 모르겠습니다..

예) await getConnection()

      .createQueryBuilder()
      .update(User)
      .set({ userId, name, memo })
      .where(
        'projectId = :projectId
and id = :id
and authority = :authority',
        { projectId, id, authority: 0 },
      )
      .execute();

를 모킹하려고 하는데 혹시 MockClass 내부에서 어떻게 해당 로직을 구현해야 할까요?

답변 1

2

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

저는 보통 getConnection으로 출발하기보다는 this.userRepository.createQueryBuilder로 출발하는데요.

그런 경우에는 mockUserRepository가 정의되어있을 것이고, test 내부에서 

mockUserRepository.createQueryBuilder = jest.fn(() => ({
  update() { return this },
  set() { return this },
  where() { return this },
  execute() { return 모킹하길원하는값 }
}));

한 뒤

this.머시기Service.메서드(); 

이런 식으로 호출해서 사용합니다. getConnection도 mockConnection으로부터 출발해도 될 것 같네요.

jhkim님의 프로필 이미지
jhkim

작성한 질문수

질문하기