是否有一种方法可以在jest内置的JSDOM中将HTML传递给构造函数,例如
const dom = new JSDOM('<!DOCTYPE html><p>Hello world</p>'); - in orginal JSDOM 我看了,有两个用于JSDOM的testEnvironmentOptions和testEnvironment字符串,但是它们似乎不能满足我的需求。
有人能告诉我如何解决这个问题吗?
发布于 2019-04-23 03:57:27
JSDOM实例只使用'<!DOCTYPE html>'创建这里。
因此,使用自定义HTML初始化JSDOM实际上不可能使用在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!
});...and总是可以在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!
});https://stackoverflow.com/questions/55730234
复制相似问题