Supertest · เริ่มต้นกับ Supertest
Checkpoint: อ่าน API Contract
ฝึกแปลง endpoint และ behavior ที่คาดหวังให้เป็นรายการ test intent
ก่อนเริ่มเขียน E2E test ให้เช็ก contract
Checkpoint นี้ยังไม่ให้เขียน test file เต็มรูปแบบ เป้าหมายคือฝึกอ่าน endpoint แล้วแปลงเป็น test intent ให้ถูก ก่อนเริ่มสร้าง harness ใน phase ถัดไป ทุกคำถามให้คิดจาก public behavior ของ Todo API ไม่ใช่ implementation detail ภายใน
กฎสำคัญ
ระบุผู้รับผิดชอบของแต่ละเครื่องมือ
แยกให้ได้ว่าใครส่ง request, ใครรัน test และใครประกอบ NestJS application
ระบุ boundary ก่อนเลือก assertion
ตัดสินใจก่อนว่ากำลังตรวจ HTTP behavior หรือเรียก service โดยตรง
อ่าน method, path, status และ body เป็นชุดเดียวกัน
test intent ที่ดีต้องตอบได้ว่า request ทำอะไรและ success/error หลักฐานคืออะไร
อ่าน Supertest Foundations
ตอบจาก contract และ flow ที่เรียนมาแล้ว แล้วตรวจ feedback ของแต่ละข้อ
เครื่องมือใดมีหน้าที่ส่ง HTTP request ในตัวอย่างนี้
บรรทัดใดกำลังสร้าง request target ให้ Supertest
ข้อใดอธิบาย E2E HTTP test ได้ตรงที่สุด
เมื่อ POST /todos สร้าง resource สำเร็จ ควรคาดหวัง status ใดตาม contract นี้
ข้อใดเป็นหลักฐานที่ caller มองเห็นจาก HTTP response
ข้อใดเป็น test intent ที่ชัดและยึดกับ public contract
จบ Foundations แล้วควรทำอะไรต่อ
ถ้าตอบ checkpoint ได้ สิ่งที่ควรทำต่อคือสร้าง test harness ที่ประกอบ NestJS application ให้พร้อมรับ request จาก Supertest ขั้นถัดไปจะเริ่มจากการติดตั้ง package, ตั้งค่า E2E suite และจัดการ lifecycle ของ app ก่อนเขียน request ที่ซับซ้อนขึ้น
เป้าหมายของ phase นี้
ยังไม่ใช่การจำ method ของ Supertest ให้ได้ทุกตัว แต่คือการอ่าน API contract แล้วรู้ว่าควรส่ง request แบบใดและตรวจหลักฐานอะไร