我正在尝试使一个名为 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/