מדריך קלאודפלייר בעברית

תיעוד 198

התחלה

עודכן לאחרונה ב-27 ביולי 2026.

המדריך הזה מראה איך לכתוב בדיקת אינטגרציה בסיסית ל-Worker עם createTestHarness(). הדוגמה משתמשת ב-Vitest כמריץ הבדיקות ומפעילה Worker שנבנה עם Wrangler.

#דרישות מוקדמות

צריך:

#יצירת רתמת בדיקות

ייבאו את createTestHarness() מ-wrangler. כוונו את רתמת הבדיקות לקובץ התצורה של ה-Worker.

test/index.test.jsjs

import { createTestHarness } from "wrangler";

const server = createTestHarness({
	workers: [{ configPath: "./wrangler.jsonc" }],
});

test/index.test.tsts

import { createTestHarness } from "wrangler";

const server = createTestHarness({
	workers: [{ configPath: "./wrangler.jsonc" }],
});

#ניהול מחזור החיים של רתמת הבדיקות

לשם פשטות, נשתמש מחדש בשרת יחיד עבור חבילת הבדיקות ונאפס אותו אחרי כל בדיקה. אפשר גם להפעיל שרת חדש לכל בדיקה, אם הבדיקות לא חולקות את אותה תצורה.

test/index.test.jsjs

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();
});

test/index.test.tsts

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 ולבדוק מול התשובה שלו.

test/index.test.jsjs

import { test } from "vitest";

test("responds", async ({ expect }) => {
	const response = await server.fetch("/");
	expect(await response.text()).toBe("Hello World");
});

test/index.test.tsts

import { test } from "vitest";

test("responds", async ({ expect }) => {
	const response = await server.fetch("/");
	expect(await response.text()).toBe("Hello World");
});