javascript - Jest- JSDOM 在实例化 JSDOM 时将 HTML 传递给 Jest 中的 JSDOM 构造函数
问题描述
有没有办法将 HTML 传递给 jest 内置 JSDOM 中的构造函数,比如
const dom = new JSDOM('<!DOCTYPE html><p>Hello world</p>'); - in orginal JSDOM
我查看了 Jest 配置 API,JSDOM 有两个testEnvironment [string]和testEnvironmentOptions,但似乎它们不能满足我的需求。
谁能告诉我如何解决这个问题
解决方案
该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!
});
...并且您始终可以在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!
});
推荐阅读
- python - 如何制作 python API 来 ping 一个 IP 地址?
- android - 在 AndroidManifest.xml 展示裸工作流配置更改
- reactjs - 使用 jsPdf 和 html-to-image 生成的 React pdf 无法正常工作
- laravel - 传递给 Common\Auth\Controllers\LoginController::authenticated() 的参数 2 必须是 App\User 的实例,给定 null,在 C:\Users\dell 中调用
- php - 更新后 Docker 应用程序无法连接到数据库
- powerbi - Power BI 循环关系
- console - 如何解决 composer.json 验证的 name 属性中的这个错误?
- python - 为具有多个模块的程序创建 docker 文件
- gcc - gcc 链接器,如何声明 HEAP 和 STACK 之间的区域,将变量放在那里以检测溢出(Cortex M3 上的硬故障问题)?
- azure - 允许 IP 地址通过 SQL Server 防火墙