[Bugfix]it looks like you called `mount()` without a global document being loade

简介: jest测试react组件时尝试获取mount组件报错,并无法进行测试,解决过程记录。

您好,如果喜欢我的文章,可以关注我的公众号「量子前端」,将不定期关注推送前端好文~

问题描述

jest测试react组件时尝试获取mount组件报错,并无法进行测试。

解决方案

这个bug的原因是在enzyme中存在多种模拟组件render的形式,相对于render函数这种模拟的形式,mount需要实际的dom环境来做挂载,也就是说mount是一种更接近真实的挂载行为。因此我们在测试之前就需要为其配置全局的document和window变量来模拟实际的浏览器行为。

操作如下:

yarn add -D jsdom

配置jest测试文件:

import {
    render, mount } from 'enzyme';
const jsdom =  require('jsdom');

const {
    JSDOM } = jsdom;
const {
    window } = new JSDOM('');
const {
    document } = (new JSDOM(``)).window;

global.document = document;
global.window = window;

错误解决,顺利进行测试。

目录
相关文章
|
8月前
|
JavaScript
Property “selectedItemIndex“ was accessed during render but is not defined on instance. 报错解决
Property “selectedItemIndex“ was accessed during render but is not defined on instance. 报错解决
724 0
成功解决:Error in created hook: “ReferenceError: params is not defined“
该博客文章描述了作者解决"ReferenceError: params is not defined"错误的过程,原因是路由传递的params参数与调用方法中的参数名称冲突,最终通过检查接口参数解决了问题。
成功解决:Error in created hook: “ReferenceError: params is not defined“
Unknown custom element: <add-employee> - did you register the component correctly? For red cursive c
原因: 1.组件名没写对(导入和注册不对应) 2.components少写了个s 3.组件命名最好是驼峰命名 4.导入时语法错误 5.代码中有两个components,后一个的值把前一个覆盖了 6.组件直接循环套用了
106 0
error: implicit declaration of function ‘read‘ [-Werror,-Wimplicit-function-declaration]
error: implicit declaration of function ‘read‘ [-Werror,-Wimplicit-function-declaration]
274 0
|
JavaScript 容器
[Vue warn]: Error in mount hook: “TypeError: Cannot read properties of null (reading ‘getAttribute‘)
[Vue warn]: Error in mount hook: “TypeError: Cannot read properties of null (reading ‘getAttribute‘)
4273 0
|
安全 Linux
linux系统下,警告:warning: implicit declaration of function ‘gets’ [-Wimplicit-function-declaration] 和 warning: the `gets' function is dangerous and should
字符数组 的英文名字是 char [] gets()函数的基本用法为:char *gets(char *s); 该函数的参数是一个字符数组,该函数的返回值也是一个字符数组。 linux下的代码如下: 1 #include 2 3 int main() 4 { 5    c...
2025 0