Giới thiệu Unit Test, Widget Test và Integration Test trong Flutter
Được viết bởi Admin|0 lượt xem

Mục lục bài viết (25)
- Testing Pyramid
- 1. Unit Test
- Định nghĩa:
- Khi nào dùng:
- Ví dụ:
- Chạy Unit Test:
- 2. Widget Test
- Định nghĩa:
- Khi nào dùng:
- Ví dụ:
- Chạy Widget Test:
- 3. Integration Test
- Định nghĩa:
- Khi nào dùng:
- Ví dụ:
- Setup Integration Test:
- Chạy Integration Test:
- So sánh 3 loại Test
- Best Practices
- 1. Test Coverage
- 2. Test Naming
- 3. Test Organization
- 4. Mocking
- Kết luận
- Tóm tắt:
Testing là phần quan trọng trong phát triển ứng dụng. Flutter hỗ trợ 3 loại testing: Unit Test, Widget Test và Integration Test. Bài viết này sẽ giúp bạn hiểu rõ từng loại.
Testing Pyramid
[object Object]1. Unit Test
Định nghĩa:
Unit Test kiểm tra một function, method hoặc class riêng lẻ trong isolation.
Khi nào dùng:
- ✅ Test business logic
- ✅ Test utility functions
- ✅ Test data transformations
- ✅ Test calculations
Ví dụ:
[object Object][object Object]Chạy Unit Test:
[object Object]2. Widget Test
Định nghĩa:
Widget Test kiểm tra một widget riêng lẻ trong isolation với test environment.
Khi nào dùng:
- ✅ Test UI components
- ✅ Test user interactions
- ✅ Test widget rendering
- ✅ Test state changes
Ví dụ:
[object Object][object Object]Chạy Widget Test:
[object Object]3. Integration Test
Định nghĩa:
Integration Test kiểm tra toàn bộ ứng dụng hoặc một flow hoàn chỉnh trên device/emulator thật.
Khi nào dùng:
- ✅ Test user flows
- ✅ Test end-to-end scenarios
- ✅ Test performance
- ✅ Test trên real devices
Ví dụ:
[object Object]Setup Integration Test:
[object Object]Chạy Integration Test:
[object Object]So sánh 3 loại Test
| Tiêu chí | Unit Test | Widget Test | Integration Test |
|---|---|---|---|
| Tốc độ | Rất nhanh | Nhanh | Chậm |
| Scope | Function/Method | Widget | Toàn bộ app |
| Environment | Isolated | Test environment | Real device |
| Cost | Thấp | Trung bình | Cao |
| Coverage | Business logic | UI components | User flows |
Best Practices
1. Test Coverage
✅ Nên: Aim for 80%+ coverage
❌ Không nên: 100% coverage (không cần thiết)
2. Test Naming
[object Object]3. Test Organization
[object Object]4. Mocking
[object Object]Kết luận
3 loại testing trong Flutter:
- ✅ Unit Test: Test business logic, nhanh, nhiều nhất
- ✅ Widget Test: Test UI components, trung bình
- ✅ Integration Test: Test user flows, chậm, ít nhất
Tóm tắt:
- Unit Test: Test functions, methods, classes
- Widget Test: Test widgets và interactions
- Integration Test: Test toàn bộ app flows
- Balance: Kết hợp cả 3 loại để có coverage tốt
Sử dụng đúng loại test sẽ giúp ứng dụng Flutter của bạn chất lượng và ổn định hơn! 🚀
Tác giả: Admin
Ngày đăng: 04/02/2025
Chuyên mục: Flutter
