inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

16-03 Jest 실습

테이블 관계

해결된 질문

390

작성자 없음

작성한 질문수 0

1

 안녕하세요

예를 들어 MockUserRepository를 만들고 그 안에 mydb라는 데이터가 있습니다.

만약 기존 User 테이블이 Post 테이블과 관계가 맺어져 있다면 Post까지 mydb에 담아야 하나요?

mydb = [{ id= '', name:='', password= '' }] 이렇게 해야 하는 건지

아니면 mydb = [{ id: '', name:'', password: '', post: { id: '', title: ''}] 이렇게 작성해야 하는 건지 궁금합니다!!

 

그리고 userService에서 postService를 사용하는 로직이 있는데 userService 테스트시 MockPost 테이블까지 같이 구현해야 하는 건지..아니면 다른 방법이 있는 건지ㅜㅜ 궁금하네요

 

하나만 더 여쭤보자면.. ㅜㅜ 제가 이해가 잘 안가서 그러는데 controller.ts를 테스트할 때는 service를 mock하고, service.ts를 테스트할 때는 데이터베이스를 mock해서 사용하는 건가요??

javascript node.js docker rest-api nestjs

답변 1

0

노원두

안녕하세요! guswn2332님!

테스트를 위한 db 구성이므로, 위에 언급해주신대로, mydb = [{ id: '', name:'', password: '', post: { id: '', title: ''}] 와 같은 방식으로 해결하면 될 것 같아요!^^

 

또한, 각 단위테스트는 상호간에 의존하지 않아야하므로 Controller 테스트시 Service는 Mocking하고, Service 테스트시 Repository를 Mocking하는 방법이 좋겠어요!^^
(Controller 테스트시 주입받은 Service가 진짜로 작동하게되면, 해당 테스트는 정확한 Controller테스트가 아니고 Service를 함께 테스트하는 통합테스트가 되어버려요!)

 

또한, DB를 Mocking하는 것은 빠른 단위테스트를 위함이므로, 여럿이 개발한 코드를 하나로 합쳐 최종 배포하기 이전에는 통합테스트 및 E2E 테스트 등을 통하여 실제 테스트DB를 사용하여 연동 테스트까지 진행 이후 배포하실 것을 권장드립니다!^^

그래프 ql 문서 사용할때 느낌표 남는거 어떻게 없애나요?

0

82

2

강의 전체 소스 코드를 받고싶습니다.

0

75

2

fontawesome 사용 문의

0

76

2

소스 코드 부탁드립니다~

0

85

2

깃 레포지터리 소스

0

80

2

커리큘럼12.css 정렬 에 나오는 과제 정답알고싶어요

0

72

2

10-01 Entity TypeOrmModule.forRoot 에 entities

0

84

3

강의 버전관련 문의입니다

0

102

2

Ubuntu 설치 관련

0

60

1

schema.gql 질문 드립니다.

0

50

1

서버 재실행시 Many to Many

0

100

3

input 관련 문의

0

89

2

Rest API 보다는 graphql이 주된 내용인데

0

130

2

강의 전체 소스코드 받을수있을까요?

0

154

1

도커볼륨 마운트 관련

0

126

2

findOne 타입스크립트오류

0

108

1

http => htrtps 호출 인증서 신뢰 오류

0

349

1

self-signed certificate in certificate chain 에러 발생

0

411

1

mongoose 설치 오류

0

141

1

특정 API, 특정 IP 허용 (단일경로에 CORS 활성화)

0

280

2

08-06

0

177

3

구조랑 패턴 관련해서 질문

0

124

2

mydocker

0

128

2

coolsms statuscode 2000 인데 전송안돼는 경우 확인.

0

156

1