강의

멘토링

커뮤니티

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

IJILKJ님의 프로필 이미지
IJILKJ

작성한 질문수

탄탄한 백엔드 NestJS, 기초부터 심화까지

Repository 패턴과 레이어 분리

test에서의 imports, provider... 관련 질문입니다.

작성

·

132

1

현재 저의 폴더 구조는
src
- auth (directory)
- users (direcotry)
이렇게 되어있고 users 폴더안에 users.repository.ts파일이 있습니다. 그리고 auth/auth.controller.ts파일에서 UserRepository를 사용하고 있는데요.
서버자체는 정상적으로 잘 돌아갑니다. (즉, 테스트 파일에서만 오류가 발생합니다.)
그런데 auth/auth.controller.spec.ts에서 테스트를 해볼때 에러가 나는데 설정관련해서 햇갈리는 부분이 있어서 질문드립니다.
우선 npm run test:watch를 했을 때 에러 내용은
TypeError: Cannot read property 'findOne' of undefined
auth.controller.spec.ts파일에서 UserRepository가 제대로 안불러 와지는거 같은데요.
spec.ts파일 같은 경우 auth.module.ts파일과는 전혀 개별적으로 작동하나요?
auth.module.ts파일에서 여러 파일들을 설정했어도 spec.ts에서는 다 다시 설정해줘야 하는건가요?
아래 사진 첨부했는데 어떤걸 더 수정해야할까요?

답변 1

0

윤상석님의 프로필 이미지
윤상석
지식공유자

안녕하세요! 김정민님 :)

UsersModule에서 UserRepository를 exports에 추가하지 않아서 생긴 문제인 것 같습니다!

IJILKJ님의 프로필 이미지
IJILKJ
질문자

저 user.module.ts에 UserRepository를 exports해도 같은 에러가 발생합니다.

공식문서 보면 repository를 따로 export하지 않고 저렇게 Typeorm자체를 export하던데

혹시 차이를 알 수 있을까요?

Typeorm을 export해서는 테스트 파일에서는 인식을 못하는건가요?

IJILKJ님의 프로필 이미지
IJILKJ
질문자

제가 다시 찾아보니까 userRepository의 export, import 관련 문제가 아니라 해당 테스트 파일에서 

typeorm.root()를 통해 테스트 파일에서도 db connection을 연결해야되는 문제였네용

윤상석님의 프로필 이미지
윤상석
지식공유자

아 Repository가 TypeORM 자체의 Repository였군요! 댓글은 알람이 오질 않아서 이제야 봤네요 ㅠㅠ 해결되어서 다행입니다! 

IJILKJ님의 프로필 이미지
IJILKJ

작성한 질문수

질문하기