본문 바로가기
Vue.js

[VTU] jest.spyOn의 뜻을 알았다.

by devebucks 2022. 10. 26.
728x90

vue2를 사용하고 있다. Vue test utils로 테스트를 짜고있다. 테스트할 컴포넌트의 데이터 프로퍼티를 변경하면, watch에 의해서 감지되서 특정 메서드를 실행하게 되어있다. 특정 메서드는 컴포넌트 내부에 무언가를 수정하지 않고, vuex의 mutations 메서드를 호출해서 값을 변경하는 역할만 한다.

 

 

그래서, 결과가 아닌 메서드 호출만을 테스트하려고 하고 있다.

 

다음처럼 테스트 코드를 작성했는데, 에러가 발생했다.

expect(wrapper.vm.테스트하는컴포넌트에정의된메서드).toBeCalledTimes(1);

toBeCalledTImes의 received는 mock 또는 spy 함수여야고 에러 메시지가 표시되었다.

 

 

해결방법

jest.spyOn은 실제 함수를 모의함수(mock)으로 변환하지 않아도, 선택한 메서드의 호출을 감시하기 위해 사용한다.

const spyFn = jest.spyOn(wrapper.vm, "updateCurriculums");
// 스파이함수 실행 트리거
wrapper.vm.setRoundCount(3);
expect(spyFn).toBeCalledTimes(1);
728x90

댓글