如何在开玩笑中解决这个"at Object.<anonymous> "错误.js



我有很多全局对象,并说出一个要测试的函数,但是当我运行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', () => {
// ...
});

相关内容

最新更新