App이라는 구성 요소가 있으며이 구성 요소 내에 fetchContent
이라는 메서드가 있습니다. 이 메서드는 내 componentWillMount 메서드 내에서 호출되며 구성 요소를 탑재 할 때 실제로 호출되는지 확인하려고합니다. 아래는 내 방법입니다 :componenWillMount 내에서 실행되는 구성 요소 메소드를 테스트 할 수 없습니다.
볼 수 있듯이, 화살표 함수를 사용하여 내 생성자의 구성 요소에 바인딩하는 대신 사용하고 있습니다. 클릭 이벤트라는 메서드이기 때문에 바인딩해야합니다. 그러나
, 나는이 구성 요소에 내 단위 테스트를 실행하려고 할 때 말에서 오류가 발생하기 때문에, 나는 일을 내 스파이/스텁을 얻을 수 없습니다 아래
TypeError: Attempted to wrap undefined property fetchContent as function
it('should fetch the content when component mounts',() => {
sinon.spy(App.prototype, 'fetchContent');
wrapper = mount(<App />);
expect(wrapper.instance().fetchContent).to.have.been.calledOnce;
});
그러나 내 메서드가 바인딩되어 있지 않거나 화살표 함수를 사용하지 않는 경우 제대로 작동합니다.
아이디어를 얻는 방법은 무엇입니까?
'jest.fn()'을 사용하여 컴포넌트 메소드를 조롱 한 다음 조롱 된 함수가 호출되는지 여부를 확인할 수 있습니다. –