このガイドでは、createTestHarness() で Worker の基本的な統合テストを書く方法を説明します。例ではテストランナーに Vitest を使い、Wrangler で作った Worker を検証します。
次のものが必要です。
- Wrangler 設定ファイル がある Worker プロジェクト
- Vitest ↗ などの Node.js テストランナー
- 開発用依存関係としてインストールした
wrangler
wrangler から createTestHarness() をインポートします。テストハーネスに Worker の設定ファイルを指定します。
import { createTestHarness } from "wrangler";
const server = createTestHarness({
workers: [{ configPath: "./wrangler.jsonc" }],
});import { createTestHarness } from "wrangler";
const server = createTestHarness({
workers: [{ configPath: "./wrangler.jsonc" }],
});簡単のため、テストスイート全体で 1 つのサーバーを再利用し、各テストのあとにリセットします。テストが同じ設定を共有しない場合は、テストごとに新しいサーバーを起動することもできます。
import { afterAll, afterEach, beforeAll } from "vitest";
beforeAll(async () => {
// Start the server before all tests
await server.listen();
});
afterEach(async () => {
// Recreates storage and restores the original Worker options after each test
await server.reset();
});
afterAll(async () => {
// Close the server after all tests
await server.close();
});import { afterAll, afterEach, beforeAll } from "vitest";
beforeAll(async () => {
// Start the server before all tests
await server.listen();
});
afterEach(async () => {
// Recreates storage and restores the original Worker options after each test
await server.reset();
});
afterAll(async () => {
// Close the server after all tests
await server.close();
});テストハーネスが提供する ヘルパー で Worker とやり取りし、挙動をアサートします。たとえば server.fetch() を呼び、Worker へリクエストを送ってレスポンスを検証できます。
import { test } from "vitest";
test("responds", async ({ expect }) => {
const response = await server.fetch("/");
expect(await response.text()).toBe("Hello World");
});import { test } from "vitest";
test("responds", async ({ expect }) => {
const response = await server.fetch("/");
expect(await response.text()).toBe("Hello World");
});