NodeJS 全局、JSdom、单元测试

NodeJS Global, JSdom, Unit test

希望这是一个简单的问题:

当我用 jsdom 创建一个 dom 时:

const dom = (html = '<!doctype html><body></body></html>') => {
  const domObject = new JSDOM(html);
  const { window } = domObject;
  const { document } = (domObject).window;

  global.window = window;
  global.document = document;
  global.navigator = {
    userAgent: 'JSDOM',
    language: 'en'
  };
}

module.exports = dom;

然后在这样的测试中使用它:

import test from 'tape';
import dom from 'dom';

// To create global dom
dom();

然而,当我进行测试时,我有文档,window 和导航器在测试中未定义。 这真的很奇怪,我错过了什么吗?还是我在假设它的行为。我应该以不同的方式处理这个问题吗?如果有怎么办?

谢谢!

这就是它的完成方式!

http://airbnb.io/enzyme/docs/guides/jsdom.html

为那些好奇的人工作得很好。