더북(TheBook)

역자의 노트 | 스텁, 목, 페이크 이해

여기에서 다루는 스텁, 목, 페이크의 개념이 다소 헷갈릴 수 있어 온라인 서점에서 고객이 ‘Harry Potter’ 책을 검색하는 예시로 이해를 돕고자 한다.

스텁

스텁은 테스트 대상 코드에 미리 정의된 가짜 데이터를 제공한다. 예를 들어 고객이 ‘Harry Potter’ 책을 검색할 때 실제 데이터베이스에 접근하지 않고도 결과를 반환하도록 하기 위해 스텁을 사용할 수 있다. 스텁을 통해 ‘Harry Potter’라는 책 제목을 반환하도록 설정하면 데이터베이스 상태와 무관하게 검색 기능을 테스트할 수 있다. 이처럼 스텁은 테스트 독립성을 높여 주지만, 호출 여부는 검증하지 않는다.

목은 외부 시스템과 상호 작용을 시뮬레이션하고, 호출 여부나 호출된 인수를 검증하는 데 사용된다. 예를 들어 고객이 ‘Harry Potter’ 책을 검색하고 이를 장바구니에 추가할 때, 실제로 데이터베이스에 책이 추가되지 않더라도 책 추가 함수가 제대로 호출되었는지, 어떤 인수로 호출되었는지 등을 확인하는 데 목을 사용한다. 또 주문 확인 이메일을 보내는 기능을 테스트할 때, 실제로 이메일을 보내지 않으면서 이메일 발송 함수가 호출되었는지 등을 확인할 수 있다. 목은 하나의 테스트에서 하나만 사용하는 것이 좋다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.