티스토리 뷰

단위 테스트에 대해 공부하던 중 Mock와 Stub 용어에 대해 공부한 포스팅입니다.

 

차이점

목(Mock)은 외부로 나가는 상호 작용을 모방하고 검사하는 데 도움이 됩니다.

예시로는 이메일이나 슬랙 발송이 있습니다.

스텁(Stub)은 내부로 들어오는 상호 작용을 모방하는 데 도움이 됩니다.

예시로는 데이터베이스에서 데이터를 검색하는 행위가 있습니다.

또한, 스텁은 SUT와 관련 의존성 간의 상호 작용을 모방만 하는 반면에 목은 모방과 검사를 함께 합니다.

Mock이라는 단어는 두루두루 쓰인다.

책을 접했을 때 헷갈렸던 것 중에 하나가 바로 mockito 라이브러리에서 제공하는 Mock 어노테이션입니다.

책에서 나왔던 이야기를 인용하자면 "실제 목을 만드는 데 도움이 되지만, 그 자체로는 목이 아니다" 라고 표현합니다.

그러고는 추가로, 도구로서의 목과 테스트 대역으로서의 목을 혼동하지 않는 것이 중요하다 말하고 있습니다.

나의 생각

제가 이 책을 읽게 된 계기는 데이터베이스 관련 로직을 사용하는 애플리케이션 레이어 테스트를 어떻게 할지에 대한 의문 때문이었습니다.

책을 읽기 전에 여러 포스팅을 읽어봤을 때 의견이 다음과 같이 갈렸습니다.

  1. 어느 글에서는 데이터베이스를 사용하는 부분은 Stub 혹은 Mock으로 대체해도 된다고 합니다.
  2. 다른 글에서는 데이터베이스 조차도 Stub과 Mock이 아닌 테스트용 데이터베이스를 사용하라고 되어 있습니다.

단위 테스트 6장까지 읽어봤을 때와 읽기 전 저의 생각은 1번이었습니다.

남은 단위 테스트 책을 읽어보고 제 생각이 바뀌는지는 다음 포스팅에서 하겠습니다.

'개발 방식 연구 > TDD' 카테고리의 다른 글

테스트 스위트(Test Suite)란?  (0) 2023.09.03
TDD 3주차 스터디 요약  (0) 2022.05.07
TDD 스터디 2주차 요약  (0) 2022.05.07
TDD 스터디 1주차 요약  (0) 2022.05.07
TDD 관련 글 정리  (0) 2022.02.13
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함