gpt4 book ai didi

javascript - Jest- JSDOM 在实例化 JSDOM 时将 HTML 传递给 Jest 中的 JSDOM 构造函数

转载 作者:行者123 更新时间:2023-11-29 23:00:54 29 4
gpt4 key购买 nike

有没有一种方法可以将 HTML 传递给 jest 内置 JSDOM 中的构造函数,例如

const dom = new JSDOM('<!DOCTYPE html><p>Hello world</p>'); - in orginal JSDOM 

我看了Jest configure API,有两个testEnvironment [string]testEnvironmentOptions 用于JSDOM,但似乎不能满足我的需求。

谁能告诉我如何解决这个问题

最佳答案

JSDOM实例创建 here只有 '<!DOCTYPE html>' .

因此使用内置的 JSDOM 使用自定义 HTML 初始化 JSDOM 是不可能的。在 jest-environment-jsdom 中创建的实例.


但是,您可以设置 document.body随心所欲:

test('change document body', () => {
document.body.innerHTML = '<p>Hello world</p>';
expect(document.body.innerHTML).toBe('<p>Hello world</p>'); // Success!
});

...并且您始终可以在 node 中运行环境并创建自己的 JSDOM实例:

/**
* @jest-environment node
*/
const { JSDOM } = require("jsdom");
const { window } = new JSDOM('<!DOCTYPE html><p>Hello world</p>');
const { document } = window;

test('initialize JSDOM with custom HTML', () => {
expect(document.body.innerHTML).toBe('<p>Hello world</p>'); // Success!
});

关于javascript - Jest- JSDOM 在实例化 JSDOM 时将 HTML 传递给 Jest 中的 JSDOM 构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55730234/

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