INTEGRITY Dokumentace

Migrace z unstable_dev

unstable_dev API bylo doporučeným způsobem spouštění integračních testů. @cloudflare/vitest-plugin balíček se přímo integruje s Vitest, což umožňuje rychlé opakované spouštění, podporuje jednotkové i integrační testy a poskytuje izolované úložiště pro každý test.

Tento průvodce ukazuje klíčové rozdíly mezi testy napsanými pomocí unstable_dev API a integrace Workers Vitest. Další informace o psaní testů pomocí integrace Workers Vitest najdete v Napište svůj první test.

Odkázat na Worker pro účely integračního testování

S unstable_dev, abyste spustili fetch událost, provedli byste to takto:

import { unstable_dev } from "wrangler"

it("dispatches fetch event", () => {
  const worker = await unstable_dev("src/index.ts");
  const resp = await worker.fetch("http://example.com");
  ...
})

S integrací Workers Vitest dosáhnete stejného cíle pomocí exports z cloudflare:workers. exports.default odkazuje na výchozí export definovaný main možnost ve svém Konfigurační soubor Wrangler. Toto main Worker běží ve stejném izolátu (isolate) jako testy, takže se na něj vztahují i všechny globální mocky.

import { exports } from "cloudflare:workers";
import "../src/"; // Currently required to automatically rerun tests when `main` changes

it("dispatches fetch event", async () => {
	const response = await exports.default.fetch("http://example.com");
	...
});

Zastavit Worker

S integrací Workers Vitest není potřeba zastavovat Worker přes worker.stop(). Tato funkcionalita se po spuštění testů zajišťuje automaticky.

Import konfigurace Wrangler

Pomocí unstable_dev API můžete odkazovat na Konfigurační soubor Wrangler jeho přidáním jako volby:

await unstable_dev("src/index.ts", {
	config: "wrangler.toml",
});

S integrací Workers Vitest teď můžete tuto referenci nastavit na Konfigurační soubor Wrangler v vitest.config.js pro všechny vaše testy:

import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineConfig } from "vitest/config";

export default defineConfig({
	plugins: [
		cloudflareTest({
			wrangler: {
				configPath: "wrangler.jsonc",
			},
		}),
	],
});

Otestujte service Workers

Na rozdíl od unstable_dev API integrace Workers Vitest nepodporuje testování Workerů ve formátu service worker. Nejprve je nutné migrace na formát ES modulů abyste mohli používat integraci Vitest pro Workers.

Definujte typy

Můžete odebrat UnstableDevWorker importy z vašeho kódu. Místo toho postupujte podle Průvodce psaním prvního testu pro definici typů pro všechny vaše testy.

- import { unstable_dev } from "wrangler";
- import type { UnstableDevWorker } from "wrangler";
+ import worker from "src/index.ts";

  describe("Worker", () => {
-   let worker: UnstableDevWorker;
    ...
  });