Flutter 支持多种类型的测试 — 单元测试(逻辑)、widget 测试(UI 组件)和集成测试(完整应用流程)。一个良好的测试策略能提高可靠性和信心,Flutter 的测试工具使其切实可行。
单元测试 — 测试逻辑
// test pure logic (functions, classes, business logic) — fast, no UI
test('adds two numbers', () {
expect(add(2, 3), 5);
});
test('Cart calculates total', () {
final cart = Cart()..add(Item(price: 10));
expect(cart.total, 10);
});
Widget 测试 — 测试 UI 组件
// widget tests verify a widget's UI and behavior (in a test environment, fast)
testWidgets('Counter increments', (WidgetTester tester) async {
await tester.pumpWidget(MyApp()); // render the widget
expect(find.text('0'), findsOneWidget); // verify initial state
await tester.tap(find.byIcon(Icons.add)); // interact (tap)
await tester.pump(); // rebuild after the change
expect(find.text('1'), findsOneWidget); // verify the update
});
