Cypress组件测试
你将学习到
- 如何为React、Angular、Vue或Svelte设置组件测试
- 如何编写第一个组件测试
- 如何运行组件测试
假设你已经成功 安装Cypress并 打开Cypress,现在该设置组件测试了。
Cypress应用将引导你完成项目配置。
配置组件测试
支持的框架
Cypress目前官方支持以下框架的挂载库: React、 Angular、 Vue和 Svelte,并支持以下开发服务器和框架:
框架 | UI库 | 打包工具 |
---|---|---|
React with Vite | React 18-19 | Vite 4-6 |
React with Webpack | React 18-19 | Webpack 4-5 |
Next.js 14-15 | React 18-19 | Webpack 5 |
Vue with Vite | Vue 3 | Vite 4-6 |
Vue with Webpack | Vue 3 | Webpack 4-5 |
Angular | Angular 17-19 | Webpack 5 |
Svelte with Vite Alpha | Svelte 5 | Vite 4-6 |
Svelte with Webpack Alpha | Svelte 5 | Webpack 4-5 |
以下集成由Cypress社区成员构建和维护。
框架 | UI库 | 打包工具 |
---|---|---|
Qwik 社区版 | Qwik | Vite |
Lit 社区版 | Lit | Vite |
选择测试类型
首次运行Cypress时,应用会提示你设置端到端测试或组件测试。点击"组件测试"开始配置向导。
有关如何选择测试类型的更多信息,推荐阅读测试类型指南

选择组件测试
项目设置
项目设置界面会自动检测你的框架和打包工具。本例中我们将使用React和Vite。 点击"下一步"继续。

自动检测到React和Vite
安装依赖
下一界面会检查所有必需依赖是否已安装。所有项目都应显示绿色复选框,表示一切就绪,点击"继续"。

所有必要依赖已安装
配置文件
接着,Cypress会生成所有必要的配置文件,并列出对项目所做的所有更改。点击"继续"。

Cypress启动器将为你生成所有这些文件
选择浏览器
完成组件测试设置后,你将进入浏览器选择界面。
选择你喜欢的浏览器,点击"开始组件测试"按钮打开Cypress应用。

选择你的浏览器
编写第一个测试
此时,你的项目已配置为使用Cypress组件测试。但当应用打开时,它不会找到任何测试文件,因为我们还没有创建任何测试。现在我们需要编写第一个组件测试。

框架支持
Cypress目前官方支持以下框架的挂载库: React、 Angular、 Vue和 Svelte。 除了官方支持的框架外,还有许多社区插件,如 Qwik和Lit。
第一个组件测试
虽然每个框架都有其独特之处,但编写测试的方式非常相似。
让我们看看如何为StepperComponent
编写基本测试。
假设步进器组件包含两个按钮
,一个用于减少计数器值,另一个用于增加计数器值,以及一个span
标签显示当前计数器值。
要查看各框架中步进器组件及其测试的示例,请访问我们的组件测试快速入门应用仓库
- React
- Angular
- Vue
- Svelte
import React from 'react'
import Stepper from './Stepper'
describe('<Stepper />', () => {
it('mounts', () => {
// see: https://on.cypress.io/mounting-react
cy.mount(<Stepper />)
})
})
import { StepperComponent } from './stepper.component'
describe('StepperComponent', () => {
it('mounts', () => {
// see: https://on.cypress.io/mounting-angular
cy.mount(StepperComponent)
})
})
import Stepper from './Stepper.vue'
describe('<Stepper />', () => {
it('mounts', () => {
// see: https://on.cypress.io/mounting-vue
cy.mount(Stepper)
})
})
import Stepper from './Stepper.svelte'
describe('Stepper', () => {
it('mounts', () => {
// see: https://on.cypress.io/mounting-svelte
cy.mount(Stepper)
})
})
测试解析
让我们分解这个测试文件。首先,我们导入Stepper
组件。然后,使用describe
和it
函数组织测试,这些函数允许我们使用方法块将测试分组。这些是Cypress提供的全局函数,意味着你不需要直接导入它们。顶层的describe
块将是文件中所有测试的容器,每个it
代表一个单独的测试。describe
函数接受两个参数,第一个是测试套件的名称,第二个是执行测试的函数。
我们在describe
内部使用it
函数定义了一个测试。it
的第一个参数是对测试的简要描述,第二个参数是包含测试代码的函数。在上面的例子中,我们只有一个测试,但很快我们将看到如何在describe
中添加多个it
块来进行一系列测试。
cy.mount()方法将我们的组件挂载到测试应用中,以便我们可以开始对其进行测试。
现在该看看测试的实际运行了。
运行测试
切换回你打开的测试浏览器,现在应该能在测试列表中看到Stepper
组件。点击它来执行测试。
我们的第一个测试验证组件能否在其默认状态下无错误地挂载。如果在测试执行期间出现运行时错误,测试将失败,并且你会看到一个指向问题源的堆栈跟踪。
像上面这样的基本测试是开始测试组件的好方法。Cypress在真实的浏览器中渲染你的组件,你可以使用开发过程中常用的所有技术/工具,例如在测试运行器中与组件交互,使用浏览器开发者工具检查和调试测试及组件代码。
可以随意尝试与步进器组件交互,点击增加和减少按钮。
现在组件已挂载,我们的下一步是测试组件的行为是否正确。