>웹 프론트엔드 >JS 튜토리얼 >Jest를 사용하여 동일한 모듈 내의 함수를 효과적으로 모의하는 방법은 무엇입니까?

Jest를 사용하여 동일한 모듈 내의 함수를 효과적으로 모의하는 방법은 무엇입니까?

DDD
DDD원래의
2024-12-16 02:25:14956검색

How to Effectively Mock Functions Within the Same Module Using Jest?

Jest를 사용하여 동일한 모듈의 함수 모의

동일 모듈 내의 함수를 모의할 때는 Jest의 기본 모의의 한계를 이해하는 것이 중요합니다. 메커니즘.

문제:

아래 예와 같이 모듈을 가져오고 내보낸 함수를 직접 조롱하면 예기치 않은 동작이 발생할 수 있습니다.

설명:

위에서 예를 들어, foo는 가져오는 동안 원래 bar 함수를 직접 호출합니다. barSpy가 테스트 설정 중에 올바르게 업데이트되었음에도 불구하고 foo는 여전히 조롱되지 않은 bar 함수를 참조하여 잘못된 출력을 초래합니다.

해결책 1:

모듈 가져오기 자체 코드 파일로:

이 문제를 방지하려면 모듈을 가져올 수 있습니다. 자체 코드 파일에 저장하여 내보낸 모든 엔터티를 동일한 인스턴스에서 가져오도록 합니다.

이 수정된 예에서 foo는 이제 가져온 인스턴스 module.bar를 통해 bar에 액세스하므로 쉽게 조롱할 수 있습니다.

해결책 2:

수동으로 모의 가져오기:

또는 테스트 설정에서 가져오기를 수동으로 모의하여 모의되지 않은 버전과 격리된 모듈의 새 인스턴스를 생성할 수 있습니다.

여기서 접근 방식에서는 모의 인스턴스 mockedModule이 테스트에 사용되어 모의되지 않은 가져오기의 간섭을 방지합니다.

위 내용은 Jest를 사용하여 동일한 모듈 내의 함수를 효과적으로 모의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.