[javascript] 자바스크립트 테스트 더블(Double)이란?
테스트 더블(Test double)은 테스트를 위해 실제 객체의 대체물을 가리키는 일반적인 용어입니다. 테스트 더블은 테스트를 더 효과적으로 수행하고, 테스트 간의 의존성을 줄이며, 테스트를 더 격리된 환경에서 실행할 수 있도록 도와줍니다.
테스트 더블에는 여러 가지 유형이 있습니다. 이 중에서 자바스크립트에서 가장 흔히 사용되는 더블 유형은 스파이(Spy), 모의(Mock), 스텁(Stub)이 있습니다.
- 스파이(Spy): 함수가 호출됐는지 여부 및 호출된 인자를 기록합니다.
- 모의(Mock): 기대하는 동작을 정의한 후, 실제 행동과 비교하여 테스트를 수행합니다.
- 스텁(Stub): 특정 함수에 대한 출력 값을 하드코딩하거나, 특정 입력에 대한 출력을 반환합니다.
자바스크립트에서는 주로 테스트 더블을 만들기 위해 Jest, Sinon, ** Jasmine** 등의 라이브러리를 사용합니다. 이들 라이브러리는 테스트 더블을 쉽게 만들고 관리할 수 있도록 도와줍니다.
테스트 더블을 사용하여 테스트를 보다 효과적으로 작성하고 유지보수하는 데 도움이 됩니다.