programing

JEST가 코드를 실행하고 있는지 여부를 확인하는 방법은 무엇입니까?

padding 2023. 6. 7. 22:11
반응형

JEST가 코드를 실행하고 있는지 여부를 확인하는 방법은 무엇입니까?

저는 저의 반응 네이티브 프로젝트에 대한 JS 테스트를 만들고 있습니다.저는 특히 반응 네이티브를 위해 파이어베이스를 사용하고 있는데, 만약 JS가 제 클래스의 코드를 실행하고 있다면 파이어베이스 인스턴스를 모의 파이어베이스 인스턴스로 바꾸고 싶습니다.

예를 들어, 저는 아래와 같은 수업 설정이 있습니다.

import firebase from 'react-native-firebase';
class Database() {
    /// use the firebase instance
}

just가 실행 환경인지 확인한 후 수입 라인을 적절한 모의 수업으로 교체하고 싶습니다.

jest는 JEST_WORKER_ID라는 환경 변수를 설정하므로 이 변수가 설정되어 있는지 확인합니다.

function areWeTestingWithJest() {
    return process.env.JEST_WORKER_ID !== undefined;
}

또한 NODE_ENV가 설정되지 않은 경우 just CLI에서 값을 'test'로 설정합니다.다른 방법으로 확인할 수도 있습니다.

나는 보통.NODE_ENV=development내 껍데기에 전세계적으로 설정되어 있습니다.이것은 나에게 도움이 됩니다.

typeof jest !== 'undefined'

(참고:global.jest그리고.'jest' in global작동하지 않습니다. 이것은 글로벌 변수가 아닌 것처럼 모든 모듈에서 사용할 수 있는 값일 뿐입니다.require또는__filename)

다음에 매개 변수를 추가할 수 있습니다.global예를 들어 global.isJest가 정의된 경우 프런트 엔드에서 확인합니다.

저에게 가장 좋은 방법은 두 가지를 확인하는 것입니다.0그리고.undefined:

[0, undefined].includes(process.env.JEST_WORKER_ID)

https://stackoverflow.com/a/52231746/3012785 을 기반으로 합니다.

언급URL : https://stackoverflow.com/questions/50940640/how-to-determine-if-jest-is-running-the-code-or-not

반응형