[Bugfix]it looks like you called
2020-01-23 本文已影响0人
秋名山车神12138
问题描述
在测试enzyme中,想要实际mount组件,但是jest报错,提示缺少global参数?
解决方案
这个bug的原因是在enzyme中存在多种模拟组件render的形式,相对于render函数这种模拟的形式,mount需要实际的dom环境来做挂载,也就是说mount是一种更接近真实的挂载行为。因此我们在测试之前就需要为其配置全局的document和window变量来模拟实际的浏览器行为。操作如下
安装jsdom
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;
最后允许yarn test, 如果要更新jest的snapshot,可以在jest的命令后面添加-u
yarn test