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

kscodebase님의 프로필 이미지
kscodebase

작성한 질문수

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

유닛 테스팅 하기

유닛 테스팅하기, MockRepository는 믿을만 한가요?

작성

·

285

1

너무 밑도 끝도 없는 질문이라 죄송합니다.

Repository의 logic에서 핵심이 되는 logic을 뽑아서 가짜 MockRepository를 만들고 사용하면, 사실 실제 코드랑 테스트 코드랑 달라질 우려가 있지 않나요?
그건 감안하고 해야 하는 부분인가요?
실제와 비슷한 수준으로 만들 수 있으면 좋겠지만, 그건 말씀하신대로 어려울 거 같고, 자칫하다가는 자기만족으로 끝날까 하는 노파심에 말씀드립니다.

또, 테스트 용도의 DB를 하나 더 만드는 것에 대해서는 어떻게 생각하시나요? 이런 경우는 없나요?
DB를 그대로 쓰는 쪽이 더 안전하다고 생각하는데, 현업에서는 보기 힘든 경우인지 여쭤보고 싶습니다.

답변 2

0

저도 SpringBoot 하다가 넘어왔는데 거기선 h2 DB라는 메모리형 DB로 테스트 용도로만 사용했었어요.

저도 실무에서 테스트코드 만들어두려는데 sqlite로 파일형DB로 구현해볼까 합니다.

아이디어 얻으려 들어와봤는데 아직 정보가 많이 없네용 ㅠ

0

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

테스트가 코드 작성보다 선행되어야 한다면, 테스트 코드를 만들고 Mock 을 만드는 건 Mock에 대한 테스트지, 실제 Repository ( Service )에 대한 테스트가 아니지 않나, 하는 생각이 듭니다.

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

테스트가 코드 작성보다 선행되는건 tdd를 할 때 그런것이고요. 코드를 작성한 후 테스트를 할 수도 있죠. 내가 테스트하길 원하는 부분을 제외하고는 모킹을 하는 것이고요. 서비스를 테스트할 때는 레포지토리는 모킹하는 겁니다. 실제 디비를 껴서 테스트하는 것은 e2e 테스트때 하시면 됩니다.

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

빠른 답변 감사합니다! 이 정도로 빨리 답이 올 거라고 생각 못했습니다. 강의를 순서대로 보지 않고 필요한 부분을 찾아가며 보고 있어서요, 아직은 e2e 테스트 부분을 안봐서 몰랐네요! 이해했습니다. 서비스를 테스트하기 위함이군요... :)

kscodebase님의 프로필 이미지
kscodebase

작성한 질문수

질문하기