[javascript] Mocha에서 테스트에 사용되는 테스트 더블(Double) 라이브러리는?
- Sinon.js: Sinon.js는 스파이(Spy), 스텁(Stub) 및 모의(Mock) 객체를 생성하는 데 사용되는 JavaScript 테스트 더블 라이브러리입니다. 테스트용으로 사용되는 외부 의존성을 가로채고 제어하거나 올바르게 함수가 호출되었는지 확인하는 데 도움이 됩니다.
const sinon = require('sinon');
// 스파이 생성 예제
const spiedFunction = sinon.spy();
// 스텁 예제
const stubbedFunction = sinon.stub().returns('stubbed response');
// 모의 객체 생성 예제
const mockObject = sinon.mock({ someMethod: () => {} });
- Testdouble.js: Testdouble.js는 테스트 더블을 생성하고 제어하는 데 사용되는 JavaScript 라이브러리입니다. Sinon.js와 유사한 기능을 제공하지만 구문이 더 단순하고 사용하기 쉬운 인터페이스를 가지고 있습니다.
const td = require('testdouble');
// 스파이 생성 예제
const spiedFunction = td.function();
// 스텁 예제
const stubbedFunction = td.function();
td.when(stubbedFunction()).thenReturn('stubbed response');
// 모의 객체 생성 예제
const mockObject = td.object(['someMethod']);
이 외에도 Jest, Jasmine 등 다양한 테스트 프레임워크에서도 테스트 더블 라이브러리를 사용할 수 있습니다. 선택한 테스트 프레임워크에 맞는 테스트 더블 라이브러리를 선택하여 사용하면됩니다.
참고 문서:
- Sinon.js: https://sinonjs.org/
- Testdouble.js: https://github.com/testdouble/testdouble.js/