Supertest · คำขอ HTTP แรก
POST, PUT, PATCH และ DELETE
รู้จัก method สำหรับ create, replace, partial update และ delete
method บอก intent ของการเปลี่ยน resource
Supertest มี method chain ตาม HTTP method ที่ endpoint ใช้ `POST` มักสร้าง resource, `PUT` แทน resource ทั้งก้อน, `PATCH` แก้บาง field และ `DELETE` ลบ resource การเลือก method จึงเป็นส่วนหนึ่งของ contract ไม่ใช่แค่ syntax
method chain พื้นฐานTS
ตัวอย่างนี้เน้น path และ method ส่วนการตรวจ status อยู่ใน test จริงแต่ละข้อ
PUT กับ PATCH ไม่ใช่คำแทนกัน
| method | payload | สิ่งที่ต้องพิสูจน์ |
|---|---|---|
| POST | ข้อมูลสำหรับสร้าง | ได้ resource ใหม่และ status 201 |
| PUT | representation เต็ม | field ที่หายไปถูกจัดการตาม full replacement contract |
| PATCH | เฉพาะ field ที่เปลี่ยน | field ที่ไม่ได้ส่งยังคงค่าตามเดิม |
| DELETE | มักไม่มี body | resource หายจากการอ่านครั้งถัดไป |
กฎสำคัญ
state
assert ผลหลัง write
อย่าตรวจแค่ status ของ write; เมื่อเหมาะสมให้ GET กลับมาเพื่อพิสูจน์ state ที่ caller จะเห็น
contract
payload ต้องตรง method
อย่าส่ง partial body ไปยัง PUT แล้วสรุปว่าเป็น full replacement โดยไม่อ่าน API contract