-- 测试
Create by fall on 2022-09-26 Recently revised in 2022-09-26
测试方案
单元测试
测试函数的业务逻辑和逻辑正确性。
推荐使用
-
因为由
create-vue
创建的官方项目配置是基于 Vite 的,所以我们推荐你使用一个可以利用同一套 Vite 配置和转换管道的单元测试框架。Vitest 正是一个针对此目标设计的单元测试框架,它由 Vue / Vite 团队成员开发和维护。在 Vite 的项目集成它会非常简单,而且速度非常快。
其它测试
- Peeky 是另一速度极快的单元测试运行器,对 Vite 集成提供第一优先级支持。它也是由 Vue 核心团队成员创建的,并提供了一个基于图形用户界面(GUI)的测试界面。
- Jest 是一个广受欢迎的单元测试框架,并可通过 vite-jest 这个包在 Vite 中使用。不过,我们只推荐你在已有一套 Jest 测试配置、且需要迁移到基于 Vite 的项目时使用它,因为 Vitest 提供了更无缝的集成和更好的性能。
组件测试
测试这个组件做了什么,而不是测试它是怎么做到的。
推荐方案
- Vitest 对于组件和组合式函数都采用无头渲染的方式 (例如 VueUse 中的
useFavicon
函数)。组件和 DOM 都可以通过 @testing-library/vue 来测试。 - Cypress 组件测试 会预期其准确地渲染样式或者触发原生 DOM 事件。可以搭配 @testing-library/cypress 这个库一同进行测试。
组件挂载库
@testing-library/vue
是一个 Vue 的测试库,专注于测试组件而不依赖其他实现细节。因其良好的设计使得代码重构也变得非常容易。它的指导原则是,测试代码越接近软件的使用方式,它们就越值得信赖。@vue/test-utils
是官方的底层组件测试库,用来提供给用户访问 Vue 特有的 API。@testing-library/vue
也是基于此库构建的。
其它测试
Nightwatch 是一个端到端测试运行器,支持 Vue 的组件测试。(Nightwatch v2 版本的 示例项目)
端到端测试
端到端测试也叫 E2E 测试
当用户实际使用时,用户的体验如何。
推荐方案
-
总的来说,我们认为 Cypress 提供了最完整的端到端解决方案,其具有信息丰富的图形界面、出色的调试性、内置断言和存根、抗剥落性、并行化和快照等诸多特性。而且如上所述,它还提供对 组件测试 的支持。不过,它只支持测试基于 Chromium 的浏览器和 Firefox。
其他选项
- Playwright 也是一个非常好的端到端测试解决方案,支持测试范围更广的浏览器品类(主要是 WebKit 型的)。查看这篇文章 《为什么选择 Playwright》 了解更多细节。
- Nightwatch v2 是一个基于 Selenium WebDriver 的端到端测试解决方案。它的浏览器品类支持范围是最广的。
使用
文章名称 | 连接 |
---|---|
官方文档 | https://cn.vuejs.org/guide/scaling-up/testing.html#recipes |