我正在努力让mocha,jsdom,es6模块与babel一起玩
jquery.
这是一个模块
// lib/dom.js import $from 'jquery'; const node = (tag)=> $(`<${tag} />`) export { node }
这是一个测试
// test/dom.js import assert from 'assert'; import { node } from '../src/lib/dom'; describe('node(tag)',()=> { it('should return a Node',()=> { let img = node('img'); assert(img.nodeName === 'IMG'); }); });
这是jsdom的设置
// test/_setup.js var jsdom = require('jsdom'); global.document = jsdom.jsdom('<!doctype html><html><body></body></html>'); global.window = document.parentWindow;
要运行的脚本
mocha --compilers js:babel-register --recursive
我需要更改以允许jsdom加载jquery,以便dom.js可以加载jquery模块而不会收到错误:
错误:jQuery需要一个带文档的窗口
解决方法
知道了,test / _setup.js需要以下内容:
global.document = require('jsdom').jsdom('<html></html>'); global.window = document.defaultView; global.$= require('jquery')(window);
document.parentWindow已从jsdom弃用.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。