gpt4 book ai didi

jestjs - 全局 beforeAll in Jest?

转载 作者:行者123 更新时间:2023-12-05 02:45:54 29 4
gpt4 key购买 nike

我需要使用 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'))
}
})

我是这样使用的:

it('does something at small screen sizes', async () => {
window.resizeTo(320, 800);
// actual test here

我可以有一个全局的 beforeAll 来应用于我项目中的每个测试文件吗?

文档提到 globalsetup: https://jestjs.io/docs/en/configuration#globalsetup-string

但是它会出错,因为它确实识别了 beforeAll 函数。在我看来,该选项是为了设置环境而不是向测试文件添加内容?

最佳答案

globalSetup 在另一个进程中运行,无法访问 beforeAll或来自测试范围的其他变量。它用于在任何测试开始之前进行的初始化,例如设置服务器,如文档所示。

在测试进程中运行的是setupFilesbeforeAll应该在Jest环境初始化后执行,所以应该移到setupFilesAfterEnv .

关于jestjs - 全局 beforeAll in Jest?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65738804/

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