[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

参考

  1. https://github.com/jsdom/jsdom
上一篇 下一篇

猜你喜欢

热点阅读