Lou*_*iro 12
Mocha不会在浏览器环境中运行您的测试,因此没有DOM.要解决此问题,只需使用jsdom npm模块来创建DOM.
来自Enzyme docs:
由于酶的mount API需要DOM,因此如果您尚未在浏览器环境(即Node环境)中使用mount,则需要使用JSDOM.
JSDOM是一个基于JavaScript的无头浏览器,可用于创建真实的测试环境.
为了获得酶的最佳体验,建议您在首次要求React之前将文档加载到全局范围.在运行React代码之前运行以下脚本非常重要.
因此,像下面这样的独立脚本通常是一个很好的方法:
/* setup.js */
var jsdom = require('jsdom').jsdom;
var exposedProperties = ['window', 'navigator', 'document'];
global.document = jsdom('');
global.window = document.defaultView;
Object.keys(document.defaultView).forEach((property) => {
  if (typeof global[property] === 'undefined') {
    exposedProperties.push(property);
    global[property] = document.defaultView[property];
  }
});
global.navigator = {
  userAgent: 'node.js'
};
阅读酶文档 - JSDOM获取更多信息
npm install --save-dev --save-exact jsdom jsdom-global
然后:
import 'jsdom-global/register'; //at the top of file, even before importing React
更多信息在这里。
替代方案:如果您在开玩笑地将酵素与
在您的中package.json,指定用于笑话的测试环境,jsdom如下所示:
"jest": {
  "testEnvironment": "jsdom"
}
我遇到了同样的问题,对我来说效果很好。
| 归档时间: | 
 | 
| 查看次数: | 8662 次 | 
| 最近记录: |