代码之家  ›  专栏  ›  技术社区  ›  Jojo Narte

如何确定JEST是否正在运行代码?

  •  11
  • Jojo Narte  · 技术社区  · 6 年前

    我正在我的react原生项目上创建一个JS测试。我专门为react native使用firebase,其中如果JS正在运行我的类的代码,我想用mockfirebase实例替换firebase实例。

    例如,我有如下的类设置。

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

    我想检查jest是否是运行环境,然后用适当的mock类替换导入行。

    1 回复  |  直到 6 年前
        1
  •  69
  •   gae123 Hunter    6 年前

    jest设置一个名为jest\u WORKER\u ID的环境变量,因此您可以检查是否设置了该变量:

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

    我还看到,如果NODE_ENV未设置,jest CLI会将其设置为值“test”。这可能是另一种检查方法。

        2
  •  8
  •   Fábio Santos    4 年前

    NODE_ENV=development 放在我的壳上。这对我很有用:

    typeof jest !== 'undefined'
    

    (注意 global.jest 'jest' in global require __filename )

        3
  •  0
  •   BlueStory    4 年前

    可以将参数添加到 global