我正在尝试使一个名为 loadFixtures 的函数可用于所有 Jest 测试。

我在 package.json 中的 jest 配置对象中有以下行:

"globalSetup": "<rootDir>/src/test/js/config/setup-globals.js"

setup-globals.js 包含:
module.exports = function() {
    function loadFixtures(filename) {
        console.info('loadFixtures is working');
    }
}

在我的测试中,例如:
beforeEach(() => {
    loadFixtures('tooltip-fixture.html');
});

但是,当我运行 Jest 时,每次测试都会得到以下信息:
ReferenceError: loadFixtures is not defined

我验证了 setup-globals.js 文件确实在测试执行之前被 Jest 找到并加载了。

任何人都可以帮助确定我在这里出错的地方吗?我花了几乎一整天的时间试图在没有运气的情况下进行调试。

最佳答案

您应该使用setupFiles而不是globalSetup

// jest config
"setupFiles": [
  "<rootDir>/src/test/js/config/setup-globals.js"
]

然后 src/test/js/config/setup-globals.js :
global.loadFixtures(filename) {
  console.info('loadFixtures is working');
}

引用资料:https://medium.com/@justintulk/how-to-mock-an-external-library-in-jest-140ac7b210c2

关于unit-testing - Jest globalSetup 选项不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49326108/

10-13 09:36