使用Jest运行测试时无法访问窗口属性

Sunpietro

我正在尝试访问位于window.sunpietro.config属性下的属性。当用Jest运行测试时我得到了TypeError: Cannot read property 'config' of undefined

我的测试代码如下所示:

import React from 'react';
import { render, cleanup } from 'react-testing-library';
import MyModule from '../my.module';
import { myConfigMock } from '../../../../jest.window.mock';

afterEach(cleanup);
beforeEach(() => {
    window.sunpietro = { ...myConfigMock };

    // window.sunpietro.config = {};
});

describe('MyModule', () => {
    test('The module renders correctly', () => {
        const { getByTestId } = render(<MyModule />);

        getByTestId('my-tabs').toBeDefined();
        getByTestId('my-panels').toBeDefined();
    });
});

我正在使用最新版本的Jest:24.7.1react-testing-library版本:6.1.2

如何模拟window属性,以便MyModule实例可以访问它们

输入

您可以在设置中设置全局变量。我在package.json中声明了这个setupFiles

"jest": {
"setupFiles": [
  "<rootDir>/tests/shim.js",
  ...
],

然后在我的shim.js中。我将窗口属性声明为全局

global.sunpietro : {
 ...
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用 | 时无法访问属性

为什么在使用switchMap时无法访问属性?

使用Jest运行测试时无法使用uuid模块

无法访问“窗口”

无法访问属性

无法使用jest.each运行测试

使用“ sudo nautilus”运行Nautilus时无法访问废纸rash

为什么在使用$ new时无法访问我的范围属性?

多次运行函数时无法访问已处理的对象

通过Jenkins运行脚本时无法访问Instagram

错误:运行Docker容器时无法访问jarfile

运行放大模拟时无法访问的DynamoDB主机

运行.exe时无法访问setting.setting文件

使用Vue Js运行Jest测试时,出现“ SyntaxError:无法在模块外部使用import语句”

C# 从窗口窗口传递对象后,我无法访问对象属性

总是无法访问并尝试使用WIF 4.5测试ADFS

在 Angular 中使用 Jest 运行测试用例时,“无法解决 CustomTranslationLoader 的所有参数”错误

无法访问instancemethod属性?

无法访问ViewModel的属性

无法访问属性-Laravel

无法访问动态属性

无法访问类属性

无法访问对象属性

在Jest测试案例中使用React Apollo时,“无法读取null的属性_location”

使用Jest测试时,无法读取未定义的react-native-vector-icons的属性“ default”

使用Typescript时,如果通过括号符号和const访问,为什么在类型保护后无法访问对象属性?

Jest / Enzyme单元测试中的最近更新后无法访问先前的DOM元素

导入全局变量时 Jest 无法运行测试

运行测试时 Jest 无法处理 TypeScript TSX 文件