SuperAPI AI 工具集

flutter-testing

测试与质量

查看项目

更新于 10-15 21:43

技能介绍

用途:为 Flutter 应用生成、配置和调试自动化测试,覆盖单元测试、Widget 测试、集成测试和插件测试。它会分析架构组件(如 MVVM 分层),产出隔离的、基于 mock 的测试以及端到端设备测试。前提是标准 Flutter 项目结构、已有业务逻辑,并熟悉 Dart 测试范式。

主要能力:按目标代码选择测试类型——验证单个函数、方法、ViewModel 或 Repository 用单元测试;验证单个 Widget 的 UI、布局或交互用 Widget 测试;验证完整应用行为、路由或设备性能用集成测试;验证平台原生代码(MethodChannels)用插件测试。

使用方式:单元测试放在 test/ 目录并以 _test.dart 结尾,ViewModel 测试伪造 Repository 依赖,Repository 测试伪造 API 客户端或本地数据库服务;Widget 测试使用 flutter_test 包,通过 WidgetTester 构建、Finder 定位、Matcher 断言;集成测试放在 integration_test/ 目录,需在 pubspec.yaml 的 dev_dependencies 中加入 integration_test 并初始化 IntegrationTestWidgetsFlutterBinding;插件测试需同时覆盖 Dart 侧(mock 平台通道)与原生侧(Android 用 JUnit,iOS/macOS 用 XCTest,Linux/Windows 用 GoogleTest)。运行命令:单元/Widget 用 flutter test test/your_test_file.dart,集成测试用 flutter test integration_test/your_test_file.dart。

限制:不使用 dart:mirrors,Flutter 不支持反射,需依赖代码生成(如 build_runner、mockito、mocktail)做 mock;测试中不重复状态,外部依赖一律用 fake 或 mock;Widget 视为“哑组件”,业务逻辑在 ViewModel/Controller 单元测试中验证;所有测试文件必须以 _test.dart 结尾;tester.pump() 用于单帧推进,tester.pumpAndSettle() 仅在等待动画或异步 UI 更新完成时使用;测试数据模型视为不可变,状态变化时创建新实例而非修改现有 mock 数据。具体收费、价格与平台支持信息暂未提供。