Eva*_*nss 10 javascript jestjs
我需要使用 React 测试库和 Jest 在测试中模拟不同的窗口大小。
目前我必须beforeAll在每个测试文件中都包含此内容:
import matchMediaPolyfill from 'mq-polyfill';
beforeAll(() => {
matchMediaPolyfill(window)
window.resizeTo = function resizeTo(width, height) {
Object.assign(this, {
innerWidth: width,
innerHeight: height,
outerWidth: width,
outerHeight: height,
}).dispatchEvent(new this.Event('resize'))
}
})
Run Code Online (Sandbox Code Playgroud)
我这样使用:
it('does something at small screen sizes', async () => {
window.resizeTo(320, 800);
// actual test here
Run Code Online (Sandbox Code Playgroud)
我可以有一个beforeAll适用于项目中每个测试文件的全局变量吗?
文档提到globalsetup:
https ://jestjs.io/docs/en/configuration#globalsetup-string
然而,它会出错,因为它无法识别该beforeAll功能。在我看来,该选项是用于设置环境但不向测试文件添加某些内容?
globalSetup在另一个进程中运行,无法访问beforeAll测试范围中的变量或其他变量。它用于在开始任何测试之前进行初始化,例如设置服务器,如文档所示。
它是setupFiles在测试过程中运行的。beforeAll应该在 Jest 环境初始化后执行,因此应该将其移至setupFilesAfterEnv.
| 归档时间: |
|
| 查看次数: |
13902 次 |
| 最近记录: |