Jest를 사용하여 동일한 모듈의 함수 모의
동일 모듈 내의 함수를 모의할 때는 Jest의 기본 모의의 한계를 이해하는 것이 중요합니다. 메커니즘.
문제:
아래 예와 같이 모듈을 가져오고 내보낸 함수를 직접 조롱하면 예기치 않은 동작이 발생할 수 있습니다.
설명:
위에서 예를 들어, foo는 가져오는 동안 원래 bar 함수를 직접 호출합니다. barSpy가 테스트 설정 중에 올바르게 업데이트되었음에도 불구하고 foo는 여전히 조롱되지 않은 bar 함수를 참조하여 잘못된 출력을 초래합니다.
해결책 1:
모듈 가져오기 자체 코드 파일로:
이 문제를 방지하려면 모듈을 가져올 수 있습니다. 자체 코드 파일에 저장하여 내보낸 모든 엔터티를 동일한 인스턴스에서 가져오도록 합니다.
이 수정된 예에서 foo는 이제 가져온 인스턴스 module.bar를 통해 bar에 액세스하므로 쉽게 조롱할 수 있습니다.
해결책 2:
수동으로 모의 가져오기:
또는 테스트 설정에서 가져오기를 수동으로 모의하여 모의되지 않은 버전과 격리된 모듈의 새 인스턴스를 생성할 수 있습니다.
여기서 접근 방식에서는 모의 인스턴스 mockedModule이 테스트에 사용되어 모의되지 않은 가져오기의 간섭을 방지합니다.
위 내용은 Jest를 사용하여 동일한 모듈 내의 함수를 효과적으로 모의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!