gpt4 book ai didi

javascript - 如何在单元测试运行中初始化全局变量?

转载 作者:搜寻专家 更新时间:2023-10-31 22:58:11 25 4
gpt4 key购买 nike

我知道全局变量不好,但我想使用一个。

摘自 package.json:

"scripts": {
"start": "nodemon jobsServer.js",
"test": "cross-env NODE_ENV=test ./node_modules/.bin/istanbul cover -x \"**/*.spec.js\" ./node_modules/mocha/bin/_mocha -- jobs js --recursive -R spec"
},

jobsServer.js:

global.appPath = require('app-root-path');
// more code here

现在我希望能够在应用程序的任何位置访问 appPath。

当我运行 npm start 时,它会获取全局变量,我很高兴。

但是当我运行 npm test 时,它不会加载全局变量(因为全局变量是在服务器文件中定义的),因此所有对 appPath 的引用都会中断。

我不想做:

const appPath = require('app-root-path');

在每个 .spec.js 测试文件中。

如何为每个规范文件加载全局变量?

最佳答案

您只需要在 test/mocha.opts 中添加一个设置文件,该文件将在开始任何测试之前加载,然后您就可以访问这些全局变量,例如:

测试/mocha.opts

--require should
--require ./test/setup
--ui bdd
--globals global
--timeout 200

测试/setup.js

global.app = require('some-library')
global.window = {}
global.window.document = {}

文档:

http://unitjs.com/guide/mocha.html#mocha-opts

关于javascript - 如何在单元测试运行中初始化全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41874060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com