การจำลองโมดูลและ Fetch
จำลองโมดูลภายนอก การเรียก fetch และโมดูล SvelteKit ในการทดสอบหน่วย
การจำลองโมดูลและ Fetch เป็นบทเรียน Sveltejs Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Sveltejs Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Sveltejs Academy มีบทเรียนทั้งหมด 4 บทเรียน
เหตุผลที่ต้องใช้ม็อก
การทดสอบควรแยกหน่วยที่กำลังทดสอบออกมา ใช้ม็อกโมดูลภายนอกเพื่อหลีกเลี่ยงการเรียกเครือข่ายและการทดสอบที่ไม่แน่นอน
vi.mock
Vitest มี vi.mock สำหรับแทนที่โมดูล
vi.mock("$lib/api", () => ({ getUser: () => ({ name: "Mock" }) }));ม็อก fetch
ใช้ vi.spyOn(global, "fetch") หรือไลบรารีอย่าง msw เพื่อสร้างม็อก API ที่สมจริง
vi.spyOn(global, "fetch").mockResolvedValue({ json: () => ({ items: [] }) });การยกคำสั่งโมดูล
คำสั่ง vi.mock จะถูกยกขึ้นไปทำงานก่อน ประกาศคำสั่งเหล่านี้ไว้ด้านบนสุดของไฟล์
คืนค่าม็อก
ใช้ vi.restoreAllMocks() ใน afterEach เพื่อทำความสะอาด
MSW สำหรับ HTTP
Mock Service Worker ดักจับการเรียกใช้งานที่ชั้นเครือข่าย เพื่อจำลองพฤติกรรม API ที่สมจริงในการทดสอบ
การม็อกโมดูลของ SvelteKit
คุณสามารถม็อก $app/stores, $app/navigation และการนำเข้าจาก SvelteKit อื่น ๆ เพื่อการทดสอบแบบแยกอิสระ
ม็อกที่ปลอดภัยด้านชนิดข้อมูล
ใช้ vi.fn() พร้อมลายเซ็นที่ระบุชนิดข้อมูล เพื่อสร้างสปายที่ปลอดภัยด้านชนิดข้อมูล
ล้างค่าระหว่างการทดสอบ
ใช้ vi.clearAllMocks() หรือการตั้งค่าใน beforeEach เพื่อเริ่มต้นใหม่
ม็อกบางส่วน
ม็อกเฉพาะการส่งออกบางรายการของโมดูล โดยคงส่วนที่เหลือให้ทำงานจริง
ข้อแลกเปลี่ยนระหว่างของจริงกับม็อก
การใช้ม็อกมากเกินไปอาจทำให้การทดสอบไม่มีความหมาย ควรทดสอบการผสานรวมด้วยการทำงานจริงเมื่อเหมาะสม
ตรวจสอบความเข้าใจ
vi.mock ทำหน้าที่อะไร
สรุปทบทวน
ใช้ vi.mock และสปายเพื่อแยกหน่วยออกจากกัน และพิจารณาใช้ MSW สำหรับม็อก API ที่สมจริงในชั้นเครือข่าย
คำถามที่พบบ่อย
บทเรียน “การจำลองโมดูลและ Fetch” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การจำลองโมดูลและ Fetch” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Sveltejs Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Sveltejs Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การจำลองโมดูลและ Fetch”
จำลองโมดูลภายนอก การเรียก fetch และโมดูล SvelteKit ในการทดสอบหน่วย คุณปฏิบัติ Sveltejs Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Sveltejs Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Sveltejs Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “การจำลองโมดูลและ Fetch” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Sveltejs Academy นี้ได้ไหม
ได้ บทเรียน Sveltejs Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การตั้งค่า Vitest สำหรับโปรเจกต์ Svelte
- @testing-library/svelte: render และ fireEvent
- การทดสอบ Store และการทำปฏิกิริยาตอบสนอง
- การจำลองโมดูลและ Fetch