[nodejs] TDD의 모의 객체 사용
TDD(Test-Driven Development)는 개발자가 코드를 작성하기 전에 테스트를 작성하는 소프트웨어 개발 방법론입니다. 이를 통해 안정성이 높은 소프트웨어를 만들 수 있습니다.
TDD에서 모의 객체(Mock Object)는 테스트 중에 필요한 외부 리소스나 의존성을 대체하는 역할을 합니다. Node.js에서는 Jest, Sinon과 같은 라이브러리를 사용하여 모의 객체를 만들 수 있습니다.
모의 객체 사용의 장점
모의 객체를 사용하면 외부 리소스에 의존하지 않고도 테스트를 수행할 수 있습니다. 이를 통해 테스트의 안정성을 높일 뿐만 아니라 테스트 속도도 빨라집니다.
Jest를 사용한 모의 객체 예제
아래는 Jest를 사용하여 모의 객체를 만들고 사용하는 간단한 예제입니다.
// math.js
class Math {
add(a, b) {
return a + b;
}
}
module.exports = Math;
// math.test.js
const Math = require('./math');
test('add', () => {
const math = new Math();
const mockAdd = jest.fn();
math.add = mockAdd;
math.add(1, 2);
expect(mockAdd).toHaveBeenCalledTimes(1);
expect(mockAdd).toHaveBeenCalledWith(1, 2);
});
위 예제에서 jest.fn()
을 사용하여 mockAdd
함수를 만들고, 이를 통해 math.add
메서드의 동작을 테스트하는 것을 볼 수 있습니다.
결론
TDD에서 모의 객체는 외부 의존성을 테스트하는 데 유용한 도구입니다. 모의 객체를 활용하여 테스트 코드를 더 견고하고 신뢰할 수 있도록 만들 수 있습니다.
참고 문헌: