Chiến lược test mobile theo kim tự tháp: nhiều test nhanh ở dưới, ít test chậm ở trên.
- Unit test (đáy, nhiều nhất): kiểm tra một hàm/class/logic riêng lẻ, mock phụ thuộc. Chạy rất nhanh, chi phí thấp, nhưng độ tin cậy tổng thể thấp. Hợp cho business logic, ViewModel/BLoC, helper.
- Widget / component test (giữa): kiểm tra một widget/component UI — render và tương tác (nhấn, nhập) mà không cần thiết bị thật. Trong Flutter là
flutter_testvớiWidgetTester; RN dùng React Native Testing Library; Android dùng Compose UI test/Robolectric. - Integration / UI test (đỉnh, ít nhất): chạy cả app hoặc phần lớn trên thiết bị/emulator, kiểm tra các phần phối hợp end-to-end. Tin cậy cao nhất nhưng chậm và tốn bảo trì (Flutter
integration_test, Android Espresso, RN Detox/Maestro).
Hay hỏi: vì sao nên nhiều unit ít e2e, và mock vs fake khi test.