Vitest · Assertions พื้นฐาน
`expect()`
เริ่ม assertion ด้วยการส่ง actual value เข้า `expect()`
expect() เชื่อม actual กับ matcher
expect() รับ actual value หรือค่าที่โปรแกรมคืนจริง แล้วคืน assertion object ที่ให้เราเลือก matcher ต่อท้าย เช่น toBe หรือ toEqual จุดสำคัญคือ actual อยู่ด้านใน expect ส่วน expected มักถูกส่งเข้า matcher
| ส่วน | หน้าที่ |
|---|---|
| actual | ค่าที่ function หรือ behavior คืนจริง |
| expect(actual) | เริ่มสร้าง assertion จากค่าจริง |
| matcher(expected) | บอกวิธีและค่าที่ใช้ตัดสิน |
อ่าน assertion จากซ้ายไปขวา
เวลาอ่าน expect(result).toBe(true) ให้แปลว่า “เอา result จริงมาตรวจว่าควรเป็น true แบบ exact” การอ่านแบบนี้ช่วยให้เลือก matcher จากความหมาย ไม่ใช่จำ syntax แยกเป็นชิ้น ๆ
กฎสำคัญ
actual มาก่อน expected
ส่งค่าที่ได้จากการรันเข้า expect ก่อน แล้วค่อยระบุเงื่อนไขที่ต้องการตรวจ
matcher คือคำกริยาของ assertion
ชื่อ matcher บอกวิธีตรวจ เช่น เท่ากัน, มีสมาชิก หรือโยน error
แบบฝึก: แยก actual และ expected
เติมคำอธิบายของ assertion จาก behavior completeTask
งานที่ต้องทำ
- ระบุ actual ที่มาจากการเรียก function
- ระบุ expected ที่เป็นสถานะใหม่
- เขียนรูปแบบ expect(actual) โดยยังไม่ต้องเลือก matcher
ลองทำด้วยตัวเองก่อน แล้วค่อยเปิดเฉลยเพื่อเทียบแนวคิดและรายละเอียด