SuperAPI AI 工具集

component-view-test

测试与质量

查看项目

更新于 10-16 00:29

技能介绍

该技能用于在 MetaMask Mobile 代码库中创建、更新和修复组件视图测试文件(*.view.test.tsx),基于 tests/component-view/ 专用框架。组件视图测试是集成级测试,通过真实 Redux 状态测试视图,不模拟 hooks 或 selectors。

用途:编写新的组件视图测试;组件或 preset 变更后更新测试;诊断并修复失败的组件视图测试。

框架结构:tests/component-view/ 包含 mocks.ts(Engine 与原生模块模拟,须首先导入)、render.tsx(renderComponentViewScreen、renderScreenWithRoutes)、stateFixture.ts(StateFixtureBuilder)、presets/(按功能划分的 initialState 构建器)、renderers/(render<Feature>View 函数)。

工作流:编写新测试时,先阅读组件与现有测试,列用例并映射测试模式,检查覆盖率并去重,使用或创建 renderer/preset,编写测试(断言导航时使用 renderScreenWithRoutes)。每个测试必须至少包含 fireEvent、waitFor/findBy、store.dispatch/act 或 Engine spy 之一,不允许仅渲染场景。修复失败测试时,运行指定 Jest 配置,按错误类型参考 reference.md 的失败诊断表处理。

运行命令:yarn jest -c jest.config.view.js <path> --runInBand --silent --coverage=false;功能文件夹覆盖率使用 yarn test:view:coverage:folder <path>。

关键约束:仅允许模拟 Engine 和允许的原生模块(由 testSetupView.js 和 ESLint 在 **/.view.test. 上强制执行);所有行为通过 Redux 状态驱动,不模拟 hooks/selectors;复用 presets 和 renderers;禁止假定时器;测试行为而非快照;遵循 AAA 结构;使用 selector ID 常量而非原始字符串;每个异步数据视图需一个数据完整性测试;过滤/分段测试需同时断言正反两面。

参考文档按操作拆分:编写/更新参考 writing-tests.md,导航测试参考 navigation-mocking.md,运行/自审/修复参考 reference.md。资料未提供官方收费、价格或平台支持信息。