การยืนยันด้วย 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การเขียนบล็อก test
- การยืนยันด้วย std.testing
- ตัวจัดสรรสำหรับการทดสอบตรวจจับการรั่วไหล
- การเรียกใช้และกรองการทดสอบ