如何给可视化组件编写单元测试

起因

有个业务方用到了我们的一个组件,用的是比较老的版本;该组件目前已经经过了N次迭代了,然后他们有个需求是之前老组件不具备的,在新版本中已经支持了,因此我想让他们直接用最新版的组件替代老组件。结果我提供了代码后,他们嵌入自己的业务中,问题不断,导致体验非常差。

究其原因,是因为我们没有对组件进行单元测试,每次迭代的时候,很多情况都没去验证,导致最终提供的组件代码是非常不可靠的。因此我想对组件进行单元测试,来解决这类问题。

其他知名组件库的单元测试方案

ECharts

从package.json中,可以看到ECharts是采用的jest进行单元测试的:

1
2
3
"scripts": {
"test": "npx jest --config test/ut/jest.config.js",
}

可视化相关测试的思路

  • 渲染无关部分做单元测试
  • 渲染相关部分做 UI 测试
    • 测试不同配置项设置下的渲染一致性
    • 测试不同版本的渲染一致性
    • 查看 Canvas 图像与操作栈 diff 分析失败原因

参考资料

羡澈:前端可视化的测试实践:

http://zhangwenli.com/ppt/2016/05/09/visualization-test/#/