用途:为 Flutter 组件层建立有纪律的测试面,覆盖布局、溢出、无障碍与 Golden 测试,属于组件测试层级;纯核心、Drift、Notifier 层见 testing-strategy。
主要能力:提供统一测试夹具 test/support/harness.dart,含 Device 预设与 pumpApp 扩展;用计算几何断言布局与点击目标;用纯 Dart 的 WCAG/APCA 校验主题颜色对比度;用 isSemantics 断言角色与标签;用溢出矩阵覆盖设备、字号与粗体组合;Golden 仅用于字形整形、镜像与数字渲染。
必要用法:每个布局/几何测试先 useDevice(...) 再 pumpApp(...);physicalSize 为物理像素,需乘 DPR,并 addTearDown(view.reset);MediaQuery 用 copyWith 置于 MaterialApp 之上;用 pump() 而非 pumpAndSettle();每个 (device, scale, bold) 元组一个 testWidgets,循环写在 testWidgets 外;meetsGuideline 必须 await expectLater;Golden 打 @Tags(['golden']) 并调用 loadAppFonts()。PR 前运行 scripts/check-test-hygiene.sh。
适用场景:Flutter 应用的组件与布局回归、无障碍语义与对比度检查、RTL 镜像与字形 Golden 验证。
限制:Flutter 内置四条可机检无障碍准则仅覆盖少数真实无障碍问题,Switch Access 无法自动测试;textContrastGuideline 存在已知误判;Golden 不能作为布局门槛,且受 OS、字体、版本影响;不得用 FittedBox、ellipsis、withClampedTextScaling 或 takeException 抑制溢出。具体收费、平台与效果资料暂未提供。