用途:为 Flutter 项目提供一套测试编写模式,覆盖单元测试、Widget 测试与 ViewModel 验证,强调用 flutter_test 与手写 Fake 替代 mock 库。
主要能力:基于 flutter_test 的单元/Widget 测试;用 Fake Repository 替换依赖;验证 ChangeNotifier ViewModel 的 Action→状态转换;Stream 验证(Stream.first、expectLater(stream, emitsInOrder([...])));pumpWidget 配合 ListenableBuilder;Robot 模式复用复杂页面测试 setup;提供测试清单与反模式提示。
使用方式:测试目录与生产代码镜像对应,单元测试放 test/<layer>/<feature>/<file>_test.dart,Widget 测试放 test/presentation/<feature>/<feature>_screen_test.dart,Fake 放 test/fake/。UseCase 测试用 Fake 替换 Repository 后断言输入输出;ViewModel 测试通过 addListener 或 notifyListeners 后读取 state,等待 Stream 更新时 await pumpEventQueue();Screen 测试直接 pumpWidget 传入 state 与 onAction,外层包 MaterialApp。Root 测试需在 setUp 中 getIt.reset() 并注册 Fake。
适用场景:UseCase、ViewModel、Screen 渲染与输入传递、Data 层映射字段验证,以及 integration_test/ 中的端到端场景。
限制:资料未提供具体版本、安装命令、收费与平台信息;不建议用 sleep 同步、共享 getIt 全局状态、在 Screen 测试中验证导航/弹窗,或滥用 @visibleForTesting 测试私有方法。