Skip to content

你可以使用 Bun 的測試運行器與 Happy DOM 一起編寫和運行瀏覽器測試。Happy DOM 實現了瀏覽器 API(如 documentlocation)的模擬版本。


首先,安裝 happy-dom

sh
bun add -d @happy-dom/global-registrator

該模塊導出一個 "registrator",它將模擬的瀏覽器 API 注入到全局作用域。

ts
import { GlobalRegistrator } from "@happy-dom/global-registrator";

GlobalRegistrator.register();

我們需要確保這個文件在我們的任何測試文件之前執行。這是 Bun 內置的 preload 功能的工作。在你的項目根目錄創建一個 bunfig.toml 文件(如果還不存在),並添加以下行。

./happydom.ts 文件應包含上面的注冊代碼。

toml
[test]
preload = "./happydom.ts"

現在在我們的項目中運行 bun test 將自動首先執行 happydom.ts。我們可以開始編寫使用瀏覽器 API 的測試。

ts
import { test, expect } from "bun:test";

test("設置按鈕文本", () => {
  document.body.innerHTML = `<button>My button</button>`;
  const button = document.querySelector("button");
  expect(button?.innerText).toEqual("My button");
});

正確配置 Happy DOM 後,這個測試將按預期運行。

sh
bun test
txt

dom.test.ts:
✓ set button text [0.82ms]

 1 pass
 0 fail
 1 expect() calls
Ran 1 tests across 1 files. 1 total [125.00ms]

請參閱 Happy DOM 倉庫文檔 > 測試運行器 > DOM 獲取使用 Bun 編寫瀏覽器測試的完整文檔。

Bun學習網由www.bunjs.com.cn整理維護