反応ネイティブプロジェクトでJSテストを作成しています。 JSが私のクラスのコードを実行している場合は、firebaseをreact nativeに具体的に使用しています。firebaseインスタンスをmockfirebaseインスタンスに置き換えたいのですが.
たとえば、以下のようなクラス設定があります。
import firebase from 'react-native-firebase';
class Database() {
/// use the firebase instance
}
Jestが実行環境かどうかを確認したいので、インポート行を適切なモッククラスに置き換えます。
jestはJEST_WORKER_IDと呼ばれる環境変数を設定するため、これが設定されているかどうかを確認します。
function areWeTestingWithJest() {
return process.env.JEST_WORKER_ID !== undefined;
}
NODE_ENVが設定されていない場合、jest CLIはそれを値「test」に設定することもわかります。これは、確認する別の方法かもしれません。
通常、シェルでグローバルにNODE_ENV=development
を設定します。これは私にとってはうまくいきます:
typeof jest !== 'undefined'
(global.jest
と'jest' in global
はグローバル変数ではないように見えるため、機能しません。ノードのrequire
または__filename
)