赞
踩
近来工作接触了一个有意思的东西,那就是Vue3的单元测试。虽说写起来费时费力,但是它确实可以让我们设计的组件更加健壮、更加合理且风险可控,同时编写单元测试也让我们更近一步理解组件的设计原理,好了废话不多说,直接开始吧。
初始化一个vue3+typescript项目,移除不需要的内容
pnpm create vite
接下来是安装vitest,这是和vitest配合使用的测试框架,兼容jest,具体可参考官网
vitest中文官网
pnpm add -D vitest
再然后是安装一个测试Vue组件的库,是vue官方开发的,叫做@vue/test-utils,具体可参考官网@vue/test-utils官网
pnpm add -D @vue/test-utils
然后再安装一个模拟浏览器环境的库jsdom
pnpm add -D jsdom
最后让我们安装一个支持tsx语法的库,这一步不是必须的,但我喜欢tsx
pnpm add @vitejs/plugin-vue-jsx
由于vitest是和vite可以结合的,所以这部分配置可以直接写到vite的config里面,前提是要在vite.config.ts中加入三斜线命令,这个在官网有特别提到。配置可以写入如下内容
打开项目,在vite.config.ts文件中写入如下内容,看注释
然后去packag.json文件中配置启动命令,模式,修改了马上自动测试,我不喜欢这个方式,配置一个命令行参数–watch==false 就可以关闭这种行为
打开vscode新建一个components目录并新增一个button目录,然后再建一个__test__目录放测试文件,elemetn-plus源码也是这样做的,在里面新建一个xxx.test.ts或者tsx的文件(没安装tsx就建ts文件)
然后再里面写入一个最简单的测试例子,如下图所示
这个例子非常简单,所使用的API都是从vitest中倒入,其中几个意思是
环境配置非常简单,我看过网上的教程说jest配合vue使用是需要做额外的配置的,但是在vite中是无需额外的心智负担,只需要按照这简单的流程配置即可使用,vitest默认会检测项目中所有.test.ts或者.test.tsx等之类的测试文件,这个是可以修改的,具体配置可以参考官网去改。另外如果使用vscdoe的用户还可以装一个插件,这个插件安装了就不需要手动打命令。
安装vscode扩展
然后就可以直接在代码里面点击左侧图标即可开始测试
不过这个插件现在有挺多bug,如果报错你可能需要去插件那里设置一下命令行,类似于这样
好了,本次的单元测试分享到此结束,下一节我们学习如何测试一个组件
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。