你可以使用 Bun 的測試運行器與 Happy DOM 一起編寫和運行瀏覽器測試。Happy DOM 實現了瀏覽器 API(如 document 和 location)的模擬版本。
首先,安裝 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 testtxt
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 編寫瀏覽器測試的完整文檔。