Test API loại DELETE — xoá thật, và xử lý khi gọi lại
🎯 Mục tiêu học: xác nhận dữ liệu thực sự bị xoá (hoặc chuyển đúng trạng thái nếu là soft-delete), và test đúng hành vi khi gọi lại DELETE lần 2 trên cùng tài nguyên.
Ví dụ minh hoạ
DELETE https://api.example.com/v1/orders/ORD1003
Response: 204 No Content
Gọi lại DELETE lần 2 trên cùng orderId:
Response kỳ vọng: 404 Not Found
(không phải 204 "thành công" lần nữa — nếu API vẫn trả 204 ở lần gọi thứ 2,
đây là dấu hiệu hệ thống không kiểm tra tài nguyên còn tồn tại trước khi xoá)
Checklist test cho DELETE — nhóm theo 7 kịch bản (xem Mục 2.1)
1. Happy path
Mã TC
Nội dung
Kỳ vọng
TC-DEL-01
Xoá thành công 1 orderId hợp lệ đang tồn tại
Trả 204; gọi GET lại tài nguyên đó trả 404
2. Dữ liệu bắt buộc
Mã TC
Nội dung
Kỳ vọng
TC-DEL-02
Không áp dụng — DELETE thường không có body, chỉ có orderId trên path (đã xét ở nhóm 3)
—
3. Định dạng & kiểu dữ liệu
Mã TC
Nội dung
Kỳ vọng
TC-DEL-03
orderId trên path sai định dạng (vd chứa ký tự đặc biệt, không đúng pattern ORDxxxx)
Trả lỗi 400, không crash 500
4. Quy tắc nghiệp vụ & dữ liệu tham chiếu
Mã TC
Nội dung
Kỳ vọng
TC-DEL-04
Xoá orderId không tồn tại từ đầu
Trả 404
TC-DEL-05
Xoá đơn hàng đang ở trạng thái COMPLETED (đã hoàn tất)
Có thể cần trả lỗi nghiệp vụ (409 Conflict) thay vì cho xoá tuỳ tiện — xác nhận rule này với BA
5. Đặc thù DELETE (idempotent)
Mã TC
Nội dung
Kỳ vọng
TC-DEL-06
Gọi DELETE lần 2 trên ID vừa xoá ở TC-DEL-01
Trả 404 — không phải 204 'thành công' giả như đang xoá thêm lần nữa
6. Bảo mật & phân quyền
Mã TC
Nội dung
Kỳ vọng
TC-DEL-07
Xoá orderId thuộc khách hàng khác
Bị từ chối, đơn hàng của khách khác không bị xoá
7. Response contract
Mã TC
Nội dung
Kỳ vọng
TC-DEL-08
Kiểm tra response khi xoá thành công
Đúng 204 No Content, không kèm body; nếu hệ thống trả 200 thì phải có body rõ ràng, không để trống mập mờ
📌 Ghi nhớ
Test DELETE không dừng ở "response trả về thành công" — luôn gọi thêm GET để xác nhận tài nguyên biến mất, và gọi lại DELETE lần 2 để xem hệ thống phản ứng đúng chuẩn hay không.
📖 Thuật ngữ Anh–Việt (mục này)
Đề thi dùng thuật ngữ tiếng Anh — nhớ đúng cụm bên trái. Bấm 🔊 để nghe từng từ, hoặc "Đọc tất cả" để nghe lần lượt Anh → (vài giây) → Việt.
Thuật ngữ (EN)
Nghĩa & ghi nhớ nhanh
Soft delete
Xoá mềm — đánh dấu trạng thái đã xoá thay vì xoá vật lý khỏi DB
204 No Content
Status code chuẩn cho thao tác thành công nhưng không có nội dung trả về
409 Conflict
Status code cho biết request hợp lệ nhưng xung đột với trạng thái hiện tại của tài nguyên
📎 Nội dung do maiqai.com biên soạn — endpoint và dữ liệu trong ví dụ chỉ mang tính minh hoạ, không thuộc hệ thống thật nào.