Supertest · ตรวจ Response Contract
Exact กับ Partial Body Assertion
เลือกความละเอียดของ assertion ให้เหมาะกับ contract
Exact กับ partial assertion
Exact assertion ตรวจว่า object มี shape และค่าตรงทั้งหมด ส่วน partial assertion ตรวจเฉพาะส่วนที่เป็น contract สำคัญ เลือกความเข้มให้สัมพันธ์กับสิ่งที่ endpoint รับรอง ไม่ใช่เลือกแบบใดแบบหนึ่งเสมอ
ความละเอียดของ assertionTS
เลือกความเข้มเพื่อป้องกัน regression ที่ถูกจุด
| style | เหมาะกับ | ความเสี่ยงถ้าใช้ผิด |
|---|---|---|
| exact | error payload หรือ tiny response ที่ shape ตายตัว | เพิ่ม field ที่ไม่กระทบ client แล้ว test fail |
| partial | resource response ที่มี metadata หรือ field ภายใน | ลืม assert field สำคัญถ้าทำให้แคบเกินไป |
| type matcher | id, timestamp หรือค่าที่สร้างระหว่าง runtime | ตรวจชนิดได้แต่ไม่พิสูจน์ค่า business |
i
assertion ที่ดีไม่ใช่ assertion ที่ยาวที่สุด
เขียนให้แคบพอดี: เข้มกับ contract สำคัญและยืดหยุ่นกับรายละเอียดที่ไม่ได้สัญญา