我有很多全局对象,并且说一个要测试的函数,但是当我运行npm test时,我得到了 在对象。 (index.js:2:1) 在对象。 (index.test.js:1:1) 这个错误 此错误指向对象“。”的gblob.aobj = {}; 为简单起见,我创建了index.js和index.test.js文件,这是jest.js的新功能
注意:我正在SPA上工作:在另一个js中创建此变量的单页应用程序
index.js
gblob.aobj={};
function sum(a, b) {
return a + b;
}
module.exports = sum;
“”“ “” index.test.js
const sum = require('./index');
test('adds 1 + 2 to equal 3', () => {
expect(a.hy()).toBe(3);
});
“”“ “” package.json,如果我需要在此处添加一些内容
{
"name": "my-app",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "jest"
},
" author": "",
"license": "ISC",
"devDependencies": {
"jest": "^24.7.1"
}
}
“”“
答案 0 :(得分:0)
如果我正确理解了您的问题,则表示您的测试失败,因为运行gblob
时全局index.js
不存在。
您可以通过使用节点的global
创建全局gblob
来解决此问题。
如果在测试开始时创建global.gblob
,则在您的代码运行时它将可用:
index.test.js
global.gblob = {}; // <= create the global "gblob"
const sum = require('./index'); // <= now require index.js
test('adds 1 + 2 to equal 3', () => {
// ...
});