有人可以举例说明如何使用jest全局变量吗?
{
...
"jest": {
"globals": {
"__DEV__": true,
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
我是否在package.json文件中指定了全局变量,还是创建了一个带有js文件的文件夹,其中应该定义全局变量?
谢谢
Mic*_*vey 41
是的.你把全局变量放在package.json中.例如,这里是默认的react-native jest配置的摘录:
"jest": {
"globals": {
"__DEV__": true,
"__RCTProfileIsProfiling": false
},
...
},
Run Code Online (Sandbox Code Playgroud)
这将使测试运行时全局变量可用.
nic*_*ang 18
添加全局变量的一种更"setupFiles": "<rootDir>/private/jest/setup.js"
简洁的方法是在 package.json 中进行设置,然后创建一个 setup.js 文件,将global.__DEV__ = true
.
这种模式有助于使 3rd 方库也可以作为 Jest 测试的全局变量(如 Backbone、jQuery、lodash 等)——例如。global.Backbone = require('backbone');
等等。
(重新提交这个作为答案,因为它以前只是 Michael Helvey 答案下的评论。)
Ste*_*eve 10
如果您使用 create-react-app,则必须使用该src/setupTests.js
文件,而不是通过 package.json 文件中的 setupFiles 指向文件。
https://create-react-app.dev/docs/running-tests/#srcsetuptestsjs
在该src/setupTests.js
文件中,您可以像这样定义全局变量:
global.TIMEOUT = 3000;
Run Code Online (Sandbox Code Playgroud)
小智 5
对我来说,使用 Jest 配置文件效果更好,因为它本身就是一个 Javascript 文件,因此它提供了完全的自由:
jest --init
在您的文件夹中运行后,在jest.config.js
Jest 生成的文件中,向下滚动以找到:
// A set of global variables that need to be available in all test environments
// globals: {},
Run Code Online (Sandbox Code Playgroud)
取消注释第二行并将所有全局变量放在那里。
归档时间: |
|
查看次数: |
28171 次 |
最近记录: |