我有很多全局对象,并且说有一个要测试的函数,但当我运行npm test时,我得到了Object。(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"
}
}
""“
发布于 2019-04-29 11:35:18
如果我没理解错的话,您是说您的测试失败了,因为当index.js
运行时,全局gblob
不存在。
您可以通过使用节点的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', () => {
// ...
});
https://stackoverflow.com/questions/55892739
复制相似问题