lorainwings / vue-unit-test-with-jest

吃透本仓库,变身vue项目单体测试大神

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

vue-unitTest-with-jest

收录于ruanyf/weekly-55期

  • 最近项目进入测试期,为了能够更好地进行单元测试,查阅了很多单元测试相关的资料,其中包括拜读了一本关于vue单元测试的书。

  • 该仓库目标是实现从零开始到单元测试无障碍的进阶。

  • 列举了所有可能出现在vue项目中的,需要进行测试的项。可与实际项目中一一对应

  • 当然基于项目的复杂程度,肯定有没有提及到的需测试项,不过相信如果能够理解本仓库内的测试思路,其他测试也是一样的套路。

  • 【追加说明1】本仓库内都是基础的测试用例,为了能更好理解,伪造的例子都比较简单。实际项目中需要在理解本仓库测试思路的前提下,根据项目实际情况写测试。

  • 【追加说明2】覆盖率是用来衡量代码质量的标准,越是复杂的项目要求的覆盖率越低,但是最低不能低于80%,不然就失去测试的意义了。

  • 【追加说明3】本仓库内未进行测试的【router,第三方插件等】并不是绝对不需要测试,如果有单独对插件和router进行设置的话,设置部分是需要测试的。也就是说第三方插件本身我们默认是经过严密测试的,而我们添加的部分需要自己添加测试。

  • 【追加说明4】本仓库有更新计划,但是由于最近实在没时间更新,也就搁置了,零散的知识点都以笔记的形式添加在issue了,有心人可以参考

    • 计划更新内容:由于已存在的内容过于基础,不适合实际项目中直接使用,所以计划在仓库内选择一个开源项目,添加单元测试
  • 【追加说明5】测试代码也要遵循项目的代码规范,和代码书写的基本修养,比如:

expect(wrapper.vm.mockFn).toBeCalled();
expect(wrapper.vm.mockFn).toBeCalledWith('xx'); 

上面测试代码看似没有问题,其实toBeCalledWith('xx')就能保证toBeCalled(),所以toBeCalled()这一行应该删除。但是本仓库基于教学的目的并没有这么做,而是保留了。

⭐关于本仓库的文档,请参考博客(业余时间不定时更新,欢迎关注)⭐

代码注释很多基本都能看懂,文档会包括一些概括的说明,是代码中未能体现的

About

吃透本仓库,变身vue项目单体测试大神


Languages

Language:HTML 46.7%Language:CSS 43.8%Language:JavaScript 6.4%Language:Vue 3.0%