0Pricing
Zig Academy · บทเรียน

การยืนยันด้วย std.testing

expect, expectEqual และฟังก์ชันที่เกี่ยวข้อง

การยืนยันด้วย std.testing เป็นบทเรียน Zig Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Zig Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Zig Academy มีบทเรียนทั้งหมด 4 บทเรียน

เนมสเปซ testing

ตัวช่วยยืนยันผลของ Zig อยู่ใน std.testing ดึงมาใช้ด้วยชื่อสั้น ๆ เพื่อให้การตรวจสอบแต่ละรายการอ่านได้สะอาดภายในบล็อกการทดสอบ

const testing = std.testing;

expect สำหรับค่าบูลีน

ตัวช่วยที่ง่ายที่สุดคือ expect ตัวช่วยนี้รับค่าบูลีนหนึ่งค่า และทำให้การทดสอบล้มเหลวเมื่อเงื่อนไขนั้นเป็นเท็จ

try testing.expect(value > 0);

ตัวช่วยส่งคืนข้อผิดพลาด

ตัวช่วยการทดสอบทุกตัวจะส่งคืนข้อผิดพลาดเมื่อล้มเหลว ดังนั้นคุณต้องใส่ try ไว้ข้างหน้าเสมอ นี่คือสิ่งที่ทำให้การทดสอบหยุดและรายงานผล

expectEqual สำหรับค่า

เมื่อต้องการเปรียบเทียบค่าสองค่า ให้ใช้ expectEqual ตัวช่วยนี้ตรวจสอบความเท่ากัน และเมื่อล้มเหลวจะแสดงทั้งค่าที่คาดไว้และค่าจริง

try testing.expectEqual(5, add(2, 3));

ใส่ค่าที่คาดไว้เป็นอันดับแรก

สำหรับ expectEqual อาร์กิวเมนต์ตัวแรกคือค่าที่คาดไว้ ส่วนตัวที่สองคือค่าที่โค้ดของคุณสร้างขึ้น ลำดับนี้มีผลต่อข้อความแจ้งความล้มเหลว

try testing.expectEqual(42, result);

การเปรียบเทียบสไลซ์

สไลซ์สองรายการจะเท่ากันเมื่อสมาชิกตรงกัน ไม่ใช่เมื่อพอยน์เตอร์ตรงกัน ให้ใช้ expectEqualSlices และระบุชนิดของสมาชิก

try testing.expectEqualSlices(u8, "hi", out);

การเปรียบเทียบสตริง

สำหรับข้อความ expectEqualStrings จะเปรียบเทียบสไลซ์ไบต์สองรายการ และแสดงส่วนต่างที่อ่านง่ายเมื่อไม่ตรงกัน จึงเหมาะอย่างยิ่งสำหรับตรวจสอบผลลัพธ์

try testing.expectEqualStrings("ok", msg);

ยืนยันข้อผิดพลาด

บางครั้งการเรียกใช้ควรล้มเหลว ให้ครอบด้วย expectError เพื่อยืนยันว่าเรียกใช้นั้นส่งคืนข้อผิดพลาดที่ระบุ ไม่ใช่ค่า

try testing.expectError(error.Bad, parse("x"));

จำนวนทศนิยมโดยประมาณ

ค่าทศนิยมแทบไม่ตรงกันอย่างสมบูรณ์ ให้ใช้ expectApproxEqAbs พร้อมค่าความคลาดเคลื่อนขนาดเล็ก เพื่อไม่ให้ความแตกต่างจากการปัดเศษเล็กน้อยทำให้การทดสอบล้มเหลว

try testing.expectApproxEqAbs(1.0, x, 0.001);

อ่านผลลัพธ์เมื่อเกิดความล้มเหลว

เมื่อการยืนยันผลล้มเหลว Zig จะแสดงค่าที่คาดไว้และค่าจริงไว้ในรายงานทันที ส่วนต่างนั้นมักชี้ตรงไปยังข้อบกพร่อง

เลือกตัวช่วยให้เหมาะสม

เลือกตัวช่วยให้ตรงกับข้อมูล: expectEqual สำหรับค่าเดี่ยว ตัวช่วยสไลซ์และสตริงสำหรับลำดับ และ expectError สำหรับเส้นทางที่ล้มเหลว

ตรวจสอบอย่างรวดเร็ว

คุณต้องการยืนยันว่าค่าข้อความสองค่าตรงกันทุกประการในการทดสอบ ตัวช่วยใดเหมาะที่สุด

สรุป

คุณได้เรียนรู้ชุดเครื่องมือ std.testing: expect, expectEqual การตรวจสอบสไลซ์และสตริง รวมถึง expectError แต่ละตัวต้องมี try อยู่ข้างหน้า ✅

คำถามที่พบบ่อย

บทเรียน “การยืนยันด้วย std.testing” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การยืนยันด้วย std.testing” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Zig Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Zig Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การยืนยันด้วย std.testing”

expect, expectEqual และฟังก์ชันที่เกี่ยวข้อง คุณปฏิบัติ Zig Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Zig Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Zig Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “การยืนยันด้วย std.testing” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Zig Academy นี้ได้ไหม

ได้ บทเรียน Zig Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การเขียนบล็อก test
  2. การยืนยันด้วย std.testing
  3. ตัวจัดสรรสำหรับการทดสอบตรวจจับการรั่วไหล
  4. การเรียกใช้และกรองการทดสอบ
← กลับไปที่ Zig Academy