Skip to content

Puoi scrivere ed eseguire test del browser con il test runner di Bun insieme a Happy DOM. Happy DOM implementa versioni simulate di API del browser come document e location.


Per iniziare, installa happy-dom.

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

Questo modulo esporta un "registrator" che inietta le API simulate del browser nell'ambito globale.

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

GlobalRegistrator.register();

Dobbiamo assicurarci che questo file venga eseguito prima di qualsiasi file di test. Questo è un compito per la funzionalità preload integrata di Bun. Crea un file bunfig.toml nella radice del tuo progetto (se non esiste già) e aggiungi le seguenti righe.

Il file ./happydom.ts dovrebbe contenere il codice di registrazione sopra.

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

Ora l'esecuzione di bun test all'interno del nostro progetto eseguirà automaticamente happydom.ts per primo. Possiamo iniziare a scrivere test che usano le API del browser.

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

test("imposta testo del pulsante", () => {
  document.body.innerHTML = `<button>Il mio pulsante</button>`;
  const button = document.querySelector("button");
  expect(button?.innerText).toEqual("Il mio pulsante");
});

Con Happy DOM configurato correttamente, questo test viene eseguito come previsto.

sh
bun test
txt

dom.test.ts:
✓ imposta testo del pulsante [0.82ms]

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

Fai riferimento al repo Happy DOM e Docs > Test runner > DOM per la documentazione completa sulla scrittura di test del browser con Bun.

Bun a cura di www.bunjs.com.cn