小编mar*_*wn4的帖子

如何测试用jsdom导入jquery的es6模块

我正在努力让mocha,jsdom,es6模块与babel一起玩jquery.

这是一个模块

// lib/dom.js
import $ from 'jquery';

const node = (tag)=> $(`<${tag} />`)

export {
  node
}
Run Code Online (Sandbox Code Playgroud)

这是一个测试

// 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');
  });
});
Run Code Online (Sandbox Code Playgroud)

这是jsdom的设置

// test/_setup.js
var jsdom = require('jsdom');

global.document = jsdom.jsdom('<!doctype html><html><body></body></html>');
global.window = document.parentWindow;
Run Code Online (Sandbox Code Playgroud)

要运行的脚本

mocha --compilers js:babel-register --recursive
Run Code Online (Sandbox Code Playgroud)

我需要更改以允许jsdom加载jquery,以便dom.js可以加载jquery模块而不会收到错误:

错误:jQuery需要一个带文档的窗口

这是完整的源代码https://github.com/markbrown4/test-simple

jquery mocha.js jsdom babeljs

6
推荐指数
1
解决办法
3435
查看次数

标签 统计

babeljs ×1

jquery ×1

jsdom ×1

mocha.js ×1