SuperAPI AI 工具集

testing

测试与质量

查看项目

更新于 10-15 21:39

技能介绍

用途:在编写或审查 Flutter/Dart 测试时使用,覆盖单元测试、Widget 测试、Golden 测试,修复不稳定或假阳性测试,补充覆盖率,并帮助在单元测试与 Widget 测试之间做选择。

主要能力与规则:

  1. 测试有效性:写测试前先问“真实代码损坏时这个测试能否失败”,避免只验证 mock 行为或语言/标准库已保证的行为,每个测试都应能捕获真实回归。
  2. 结构:始终使用 group(),以被测类命名;用 setUp 创建共享对象,用 tearDown 清理(关闭流、控制器);每个测试聚焦一个行为,方法多时可嵌套 group()。
  3. 命名:用 should 描述预期行为,如 test('should emit updated list when item is added')。
  4. 单元测试 vs Widget 测试:单元测试针对纯 Dart 逻辑、仓库、cubit/bloc,工具为 test、bloc_test、mocktail;Widget 测试针对单个组件、UI 行为、导航,工具为 flutter_test、WidgetTester。业务逻辑默认用单元测试,验证 UI 渲染、手势或组件交互时用 Widget 测试。
  5. Widget 测试模式:用 MaterialApp(或应用根组件)包裹以提供 MediaQuery、Directionality;单帧用 pump(),需等动画完成用 pumpAndSettle();可能本地化或动态文本的组件优先用 find.byKey 而非 find.text。
  6. Mock 最佳实践:用 mocktail(无需代码生成);在 setUpAll 中对传给 any() 的自定义类型调用 registerFallbackValue();在仓库边界而非 HTTP/数据库层做 mock。
  7. 文件组织:test/ 下镜像 lib/ 结构,每个源文件一个测试文件,命名为 <source_file>_test.dart。

限制:资料未提供安装命令、版本要求、收费或平台信息。