这是我参与「第五届青训营 」伴学笔记创作活动的第 10 天
测试专题
主流:功能测试 但还是建议自动化测试
为什么要进行自动化测试 1.统一代码风格 2.组件 Readme 用例化,保持时效性 3.有效审视代码中的耦合逻辑 4.避免后续迭代影响到历史功能,发布 breaking change
自动化测试:单元测试和e2e测试
单元测试:给设计师和开发人员用
e2e测试:给用户用
尽量减少用例的更改,保持组件的强壮性
Jest+ React testing library + Cypress + storybook :
测试框架: Jest(提供一个可运行的环境、测试结构、结果报告、代码覆盖、断言、mockingsnapshot)
测试辅助库: react-testing-library (dom查询,断言和事件的模拟,React18 推荐的UI自动化的集大成测试辅助库)
Cypress + storybook: E2E 端对端测试,覆盖单元测试不易于覆盖的复杂场景
配置示例仓库:https://github.com/czm1290433700/test_demo_for_config
demo仓库: https://github.com/czm1290433700/test_demo
推荐使用ARIA,不对代码结构依赖,但又给自己提供指示,非常适用
断言部分 jest和jest dom两部分完成整个断言内容
测试时不止测试程序中事件本身,同时也需要注重应用中和该操作相关的实践,比如和click相关的hover
所以使用userEvent
快进任务相当于在jest环境中将时间代码置零,然后再做调整
快照测试是其中一种单元测试
生成快照文件(完全对照的一种静态场景测试)
e2e测试 滚动,点击效果和跳转一类的效果无法单元测试 使用之后测试业务本身,对html中的内容场景测试
测试评价 通过使用例运行标红区域的逻辑,即可提高覆盖率 (用例可以覆盖所有代码基本就差不多)
详见测试小册
标题:【青训营请回答】主题直播 | 第五届字节跳动青训营前端方向-飞书直播