תיעוד 198
התחלה
עודכן לאחרונה ב-27 ביולי 2026.
המדריך הזה מראה איך לכתוב בדיקת אינטגרציה בסיסית ל-Worker עם createTestHarness(). הדוגמה משתמשת ב-Vitest כמריץ הבדיקות ומפעילה Worker שנבנה עם Wrangler.
#דרישות מוקדמות
צריך:
- פרויקט Worker עם קובץ תצורה של Wrangler
- מריץ בדיקות של Node.js, כמו Vitest ↗︎
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");
});