是否有一种方法可以将HTML传递给Jest内置JSDOM中的构造函数,例如
const dom = new JSDOM('<!DOCTYPE html><p>Hello world</p>'); - in orginal JSDOM
我查看了Jest configure API,对于JSDOM,有两个 testEnvironment [string] 和 testEnvironmentOptions ,但看来它们不能满足我的需求。
谁能告诉我如何解决这个问题
答案 0 :(得分:1)
仅使用JSDOM
创建here的'<!DOCTYPE html>'
实例。
因此,在JSDOM
中创建的内置jest-environment-jsdom
实例实际上不可能使用自定义HTML初始化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!
});