jest 是个简单好用的单测工具,自带 JSDOM,可以在 node 环境模拟浏览器 DOM 环境,方便测试前端代码,但是 JSDOM 并不是万能,部分 DOM API 并未完全实现,比如今天遇到的 Canvas 就属于这部分未实现的 API,如果需要写相关测试用例,jest 并未直接提供解决方法。
随着 JSDOM 的逐步完善此类 API 缺失会越来越少,到时候可以去除这类 mock。
解决步骤
jest-canvas-mock 就是为解决这个问题而生,参考文档配置即可。
安装依赖
shell1npm i -S jest-canvas-mock
配置 jest
json1{2 "setupFiles": ["jest-canvas-mock"]3}
More
JSDOM 缺失的 mock(例如:fetch、localstorage 等) 可以在 这里 找到解决办法。