我有很多全局对象,并说出一个要测试的函数,但是当我运行npm测试时,我得到 在对象。(索引.js:2:1) 在对象。(索引测试.js:1:1) 此错误 此错误指向 gblob.aobj={} 的对象 "." ; 为了简单起见,我创建了一个索引.js和 index.test.js 文件,我是开玩笑的新手.js
注意:IM 正在处理 SPA:在另一个 JS 中创建此变量的单页应用程序
索引.js
gblob.aobj={};
function sum(a, b) {
return a + b;
}
module.exports = sum;
"" """ 索引测试.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"
}
}
"">
如果我正确理解了您的问题,您是在说您的测试失败,因为index.js
运行时全局gblob
不存在。
您可以通过使用节点的global
创建全局gblob
来解决此问题。
如果在测试开始时创建global.gblob
,则在代码运行时它将可用:
索引测试.js
global.gblob = {}; // <= create the global "gblob"
const sum = require('./index'); // <= now require index.js
test('adds 1 + 2 to equal 3', () => {
// ...
});