Skip to main content

Testing CRUD Inertia từ backend

UI test có giá trị, nhưng phần lớn invariant của Inertia app nằm ở backend: route, auth, validation, query và response props. Feature test nên là lớp bảo vệ đầu tiên.

Index response

Validation

Mutation + redirect

Authorization

Nên test gì ở frontend

Frontend test nên tập trung behavior riêng của UI:
  • nút submit disabled khi processing;
  • error field hiển thị đúng;
  • confirm delete chặn action khi cancel;
  • filter giữ giá trị nhập;
  • progress bar xuất hiện khi có upload progress.
Đừng duplicate toàn bộ backend validation rules thành test frontend nếu browser không sở hữu rule đó.

Test partial reload contract

Backend test không chỉ assert status 200; assert prop boundary quan trọng:

Query-count regression

List page dễ phát sinh N+1 sau khi thêm thumbnail/category/permission:
Con số budget phải phù hợp project; mục tiêu là phát hiện regression, không phải chọn số đẹp.

Frontend interaction tests nên cover semantics

Ví dụ Product form:

E2E cho browser semantics

Playwright đáng dùng cho những thứ unit test khó chứng minh:

Failure-first test matrix

Mỗi CRUD quan trọng nên có:

Tài liệu chính thức

Nội dung thực chiến trong bài được xây dựng dựa trên API và nguyên lý của Inertia.js v3 Documentation. Khi áp dụng vào dự án, hãy đối chiếu API cụ thể với tài liệu chính thức theo phiên bản bạn đang sử dụng.