用途:在 Flutter 项目中实现组件级 Widget 测试,验证 UI 渲染与用户交互(点击、滚动、输入文本)。
主要能力:围绕 flutter_test 的三大核心组件展开——WidgetTester(由 testWidgets() 自动提供,用于构建和操作组件)、Finder(定位组件,如 find.text('Submit')、find.byType(TextField)、find.byKey(Key('submit_btn')))、Matcher(校验状态,如 findsOneWidget、findsNothing、findsNWidgets(2)、matchesGoldenFile)。
使用方式:先在 pubspec.yaml 的 dev_dependencies 添加 flutter_test 依赖;测试文件放在项目根目录 test/ 下,文件名以 _test.dart 结尾。实现流程为:用 testWidgets('description', (WidgetTester tester) async { ... }) 定义测试;await tester.pumpWidget(MyWidget()) 构建 UI(需要方向或主题数据时用 MaterialApp 或 Directionality 包裹);创建 Finder;用 expect(finder, matcher) 校验初始状态;模拟交互(如 await tester.tap(buttonFinder));用 await tester.pump() 或 await tester.pumpAndSettle() 重建组件树;再次 expect 校验更新后的状态;最后运行 flutter test test/your_test_file_test.dart,根据失败断言调整组件逻辑或测试后重跑。
交互与状态处理:静态渲染只需 pumpWidget 一次后断言;按钮点击等常规状态变化用 tap 后 pump 触发单帧重建;动画、过渡或异步 UI 更新用 drag 等触发后调用 pumpAndSettle 反复泵帧直至无新帧;文本输入用 await tester.enterText(textFieldFinder, 'Input string');动态或长列表用 await tester.scrollUntilVisible(itemFinder, 500.0, scrollable: listFinder) 确保目标组件已渲染。
适用场景:组件渲染校验、用户交互回归测试、列表增删与滑动删除等状态变化验证。
限制:资料未提供该技能的具体安装命令、收费方式、支持平台与版本要求,暂未提供。