jest 全局变量示例
jest global variable example
有人可以举例说明如何使用 jest 全局变量吗?
{
...
"jest": {
"globals": {
"__DEV__": true,
}
}
...
}
我是在 package.json 文件中指定全局变量,还是创建一个包含 js 文件的文件夹来定义全局变量?
谢谢
是的。您将全局变量放在 package.json 中。例如,这里是默认的 react-native jest 配置的摘录:
"jest": {
"globals": {
"__DEV__": true,
"__RCTProfileIsProfiling": false
},
...
},
这将使变量在测试 运行 时全局可用。
对我来说,使用 Jest 配置文件效果更好,因为它本身就是一个 Javascript 文件,因此它提供了充分的自由:
在您的文件夹中 运行 jest --init
之后,在 Jest 生成的 jest.config.js
文件中,向下滚动以找到:
// A set of global variables that need to be available in all test environments
// globals: {},
取消注释第二行并将所有全局变量放在那里。
一种更简洁的添加全局变量的方法是在 package.json 中设置 "setupFiles": "<rootDir>/private/jest/setup.js"
,然后创建一个设置 global.__DEV__ = true
的 setup.js 文件。
此模式有助于使第 3 方库也可作为 Jest 测试的全局变量(如 Backbone、jQuery、lodash 等)- 例如。 global.Backbone = require('backbone');
等等。
(重新提交此作为答案,因为它以前只是 Michael Helvey 的答案下的评论。)
如果您正在使用 create-react-app,则必须使用 src/setupTests.js
文件,而不是通过 package.json 文件中的 setupFiles 指向文件。
https://create-react-app.dev/docs/running-tests/#srcsetuptestsjs
在 src/setupTests.js
文件中,您可以像这样定义全局变量:
global.TIMEOUT = 3000;
要共享对象变量(不仅是与配置的全局变量 属性 一样的原语),您可以使用 testEnvironment 属性.
这里有更多解释 Jest's Git
有人可以举例说明如何使用 jest 全局变量吗?
{
...
"jest": {
"globals": {
"__DEV__": true,
}
}
...
}
我是在 package.json 文件中指定全局变量,还是创建一个包含 js 文件的文件夹来定义全局变量?
谢谢
是的。您将全局变量放在 package.json 中。例如,这里是默认的 react-native jest 配置的摘录:
"jest": {
"globals": {
"__DEV__": true,
"__RCTProfileIsProfiling": false
},
...
},
这将使变量在测试 运行 时全局可用。
对我来说,使用 Jest 配置文件效果更好,因为它本身就是一个 Javascript 文件,因此它提供了充分的自由:
在您的文件夹中 运行 jest --init
之后,在 Jest 生成的 jest.config.js
文件中,向下滚动以找到:
// A set of global variables that need to be available in all test environments
// globals: {},
取消注释第二行并将所有全局变量放在那里。
一种更简洁的添加全局变量的方法是在 package.json 中设置 "setupFiles": "<rootDir>/private/jest/setup.js"
,然后创建一个设置 global.__DEV__ = true
的 setup.js 文件。
此模式有助于使第 3 方库也可作为 Jest 测试的全局变量(如 Backbone、jQuery、lodash 等)- 例如。 global.Backbone = require('backbone');
等等。
(重新提交此作为答案,因为它以前只是 Michael Helvey 的答案下的评论。)
如果您正在使用 create-react-app,则必须使用 src/setupTests.js
文件,而不是通过 package.json 文件中的 setupFiles 指向文件。
https://create-react-app.dev/docs/running-tests/#srcsetuptestsjs
在 src/setupTests.js
文件中,您可以像这样定义全局变量:
global.TIMEOUT = 3000;
要共享对象变量(不仅是与配置的全局变量 属性 一样的原语),您可以使用 testEnvironment 属性.
这里有更多解释 Jest's Git