gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 22:49:16 31 4
gpt4 key购买 nike

我正在努力让 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 需要一个带有文档的窗口

这是完整来源 https://github.com/markbrown4/test-simple

最佳答案

明白了,test/_setup.js 需要以下内容:

global.document = require('jsdom').jsdom('<html></html>');
global.window = document.defaultView;
global.$ = require('jquery')(window);

document.parentWindow 已从 jsdom 中弃用。

关于jquery - 如何使用 jsdom 测试导入 jquery 的 es6 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34890907/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com