Quy trình viết Unit Test, Widget Test và Integration Test toàn diện cho App Flutter
Một trong những nỗi sợ lớn nhất của các nhà phát triển khi dự án di động phình to là: **"Sửa một tính năng mới ở màn hình A nhưng vô tình làm hỏng ngầm tính năng cũ ở màn hình B mà không hề hay biết!"**. Hệ thống **Kiểm thử tự động (Automated Testing)** giúp bạn tự tin đẩy bản cập nhật lên Store với chất lượng an toàn 100%!
1. 3 Tầng kiểm thử trong ứng dụng Flutter
1. Unit Test (Kiểm thử đơn vị logic - Tốc độ chạy 0.1s)
Kiểm tra tính đúng đắn của các hàm toán học, các Use Cases nghiệp vụ hoặc các hàm parse JSON mà không cần mở giao diện app. Sử dụng thư viện test và mocktail để giả lập dữ liệu.
2. Widget Test (Kiểm thử thành phần giao diện - Tốc độ chạy 1s)
Kiểm tra xem nút bấm có hiển thị đúng màu sắc không, khi bấm nút thì ô Text có cập nhật nội dung đúng như kỳ vọng không mà không cần chạy trên điện thoại thật.
3. Integration Test (Kiểm thử tích hợp luồng người dùng - End-to-End)
Tự động mở ứng dụng trên điện thoại thật/giả lập, tự động gõ tài khoản, tự động bấm đăng nhập và kiểm tra xem có chuyển vào trang chủ thành công hay không!
2. Mã nguồn ví dụ viết Unit Test với mocktail
import 'package:flutter_test/flutter_test.dart';
import 'package:mocktail/mocktail.dart';
class MockUserRepository extends Mock implements UserRepository {}
void main() {
late MockUserRepository mockRepo;
setUp(() {
mockRepo = MockUserRepository();
});
test('Đăng nhập thành công trả về User Entity', () async {
when(() => mockRepo.login('admin', '123456'))
.thenAnswer((_) async => User(id: '1', name: 'Admin'));
final result = await mockRepo.login('admin', '123456');
expect(result.name, equals('Admin'));
verify(() => mockRepo.login('admin', '123456')).called(1);
});
}
Kết luận
Đầu tư viết Test giúp loại bỏ 99% lỗi crash ngầm và bảo vệ uy tín ứng dụng khi có hàng ngàn người dùng. Uwmee Software áp dụng quy trình kiểm thử tự động toàn diện cho các dự án phát triển app mobile. Đọc thêm bài viết quy trình test app mobile chuẩn.
Cần vượt Closed Testing nhanh chóng?
Đội 12+ tester thật của Uwmee tương tác hằng ngày đủ 14 ngày — trọn gói chỉ 300.000đ, chạy lại miễn phí nếu không đạt.