[javascript] Enzyme과 함께 사용하는 모의 객체(Mocking) 기능

모의 객체(Mocking)는 테스트 중에 외부 의존성을 가지는 코드를 테스트하기 위해 사용됩니다. Enzyme은 React 컴포넌트를 테스트하기 위한 JavaScript 라이브러리인데, 모의 객체를 사용하여 외부 의존성을 가지는 코드를 모방하고 제어할 수 있습니다. 이를 통해 테스트를 더욱 견고하게 만들 수 있습니다.

Enzyme은 jestmocha와 같은 테스트 프레임워크와 함께 사용될 수 있습니다. 모의 객체를 사용하기 위해서는 jest.fn()과 같은 함수를 사용하여 외부 함수를 모방해야 합니다.

다음은 Enzyme과 함께 사용하는 모의 객체의 예시입니다.

import React from 'react';
import { shallow } from 'enzyme';

// 모의 객체 생성
const mockFunction = jest.fn();

// 컴포넌트 생성
const MyComponent = () => {
  return (
    <button onClick={mockFunction}>Click me</button>
  );
}

// 테스트
it('should call mock function when button is clicked', () => {
  const wrapper = shallow(<MyComponent />);
  wrapper.find('button').simulate('click');
  expect(mockFunction).toHaveBeenCalled();
}); 

위 예시에서는 jest.fn() 함수를 이용하여 mockFunction이라는 모의 객체를 생성하고, 컴포넌트 안의 버튼이 클릭 될 때마다 해당 모의 객체를 호출하도록 설정합니다. 그리고 버튼이 클릭되었는지를 확인하기 위해 expect문을 사용하여 모의 객체가 호출되었는지를 검증합니다.

이처럼 Enzyme과 모의 객체를 함께 사용하면 외부 의존성을 가지는 코드를 더욱 쉽게 테스트할 수 있습니다. Enzyme은 React 컴포넌트의 가상 DOM을 생성하고 조작할 수 있어, 더욱 효과적인 테스트를 가능하게 합니다.

참고 자료