Kiểm thử end-to-end
Một cách phổ biến để kiểm thử các JavaScript page component là dùng công cụ end-to-end như Cypress hoặc Pest. Đây là các công cụ tự động hóa trình duyệt, cho phép chạy những mô phỏng thực tế của ứng dụng ngay trong trình duyệt. Các test này thường chậm hơn; tuy nhiên, vì chúng kiểm thử ứng dụng ở cùng lớp mà người dùng cuối tương tác, chúng mang lại mức độ tin cậy cao rằng ứng dụng đang hoạt động đúng. Đồng thời, do test chạy trong trình duyệt, JavaScript của bạn cũng thực sự được thực thi và kiểm thử.Unit test phía client
Một cách khác để kiểm thử page component là dùng client-side unit testing framework như Vitest, Jest hoặc Mocha. Cách này cho phép kiểm thử JavaScript page component độc lập bằng Node.js.Kiểm thử endpoint
Ngoài kiểm thử page component JavaScript, bạn có thể cũng muốn kiểm thử các response Inertia do framework phía máy chủ trả về. Một cách phổ biến là dùng endpoint test, trong đó bạn gửi request đến ứng dụng và kiểm tra response. Laravel cung cấp công cụ để thực hiện loại test này. Tuy nhiên, để quá trình này dễ dàng hơn nữa, adapter Laravel của Inertia cung cấp thêm các công cụ HTTP testing. Hãy xem một ví dụ.inertiaProps để lấy các prop được trả về trong response. Có thể truyền một key để lấy thuộc tính cụ thể; các thuộc tính lồng nhau được hỗ trợ bằng ký pháp “dot”.
assertInertia và các assertion có sẵn. Trước tiên, để xác nhận response Inertia có một thuộc tính, bạn có thể dùng phương thức has. Có thể xem phương thức này tương tự hàm isset của PHP.
has.
has cũng có thể được dùng để scope các property, giúp giảm lặp khi assert trên các property lồng nhau.
where.
etc.
missing hoàn toàn đối lập với has, dùng để đảm bảo property không tồn tại. Phương thức này kết hợp rất tốt với etc.
Kiểm thử partial reload
Bạn có thể dùngreloadOnly và reloadExcept để kiểm thử cách ứng dụng phản hồi với partial reload. Các phương thức thực hiện follow-up request và cho phép assertion trên response.
reloadOnly hoặc reloadExcept.
Kiểm thử deferred props
Bạn có thể dùngloadDeferredProps để kiểm thử cách ứng dụng phản hồi với deferred props. Phương thức thực hiện follow-up request để tải deferred props và cho phép assertion trên response.
loadDeferredProps.
loadDeferredProps.
Kiểm thử flash data
Bạn có thể dùnghasFlash và missingFlash để kiểm thử flash data trong Inertia response.
Redirect response
Các phương thứchasFlash và missingFlash ở trên chỉ hoạt động với response của Inertia page đã render. Với redirect response, bạn có thể dùng trực tiếp assertInertiaFlash và assertInertiaFlashMissing trên test response để assertion dữ liệu flash trong session.
Tắt SSR trong khi test
Ứng dụng có thể bật SSR cho development và production nhưng không cần trong testing. Bạn có thể đặtINERTIA_SSR_ENABLED thành false trong phpunit.xml để ngăn Laravel adapter dispatch SSR request.
Inertia::disableSsr() trong test base class.