shiliuzi8686 / _Pomegranate-s-fe-testing

front-end test

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

_Pomegranate-s-fe-testing

front-end test

可读性、可维护性 保证测试代码的维护成本小于业务代码

准备测试数据

内联 低层次的代码,测试数据简单 一开始可以使用内联的方式 当测试数据变得复杂的时候 进行重构

委托:使用一个函数 中高层次的代码,测试数据复杂 可读性更高,利用函数参数、可以和内联方式联合使用 放到对应的文件夹中「helpers」

隐式 使用 beforeEach、每一个测试 case 都需要用到 导致代码分割、可读性变了 --》 可以使用 describe 来包裹需要用到同样测试数据的测试,在 describe 中的 beforEach 去创建测试数据

可以一上来就使用内联、之后再使用重构手法重构

后门操作准备数据的方式

// 调用非公开api 的方式来准备测试数据 优先使用 round-trip 的方式,但是如果我们此时没有 addTodo 这个方法的话就可以先使用后门的方式,之后有 addTodo 了再对这个代码进行重构

后门方式准备测试数据会,因为跟我们的业务代码逻辑可能会高度重合,使这个测试变得很脆弱,这样的代码多了,我们对我们自己的单元测试就会不信任了,之后不得不放弃这些测试

最小准备数据原则

在准备测试数据的时候,和当前要测试的功能无关的数据不需要提供 保持单元测试的可读性 给数据一些默认值,只传我们需要的 委托-工厂函数 来隐藏不需要的函数 虚拟对象的方式

About

front-end test


Languages

Language:TypeScript 34.1%Language:JavaScript 33.9%Language:CSS 17.9%Language:Vue 11.6%Language:HTML 2.5%