原文地址:Frontend Testing Guide: 10 Essential Rules for Naming Tests
更好的测试之路始于一些非常简单的事情:如何命名测试。好的测试名称:
- 使您的测试套件更易于维护
- 指导您编写关注用户行为的测试
- 提高团队的清晰度和可读性
在这篇博文中,我们将探讨编写更好的测试的 10 条基本规则,这些规则将改变您的测试方法。这些原则是:
- 与框架无关
- 适用于整个测试金字塔
- 适用于各种测试工具:
- 单元测试(Jest、Vitest)
- 集成测试
- 端到端测试(Cypress、Playwright)
通过遵循这些规则,无论您选择什么测试框架或方法,您都将创建更强大且更易于理解的测试套件。
每个测试名称都应以“should”开头,后跟一个动作动词。
通用模式:should 动词 额外说明
指定导致您正在测试的行为的原因。
通用模式:should 动词 额外说明 when 操作事件
使用描述块创建清晰的测试层次结构。
通用模式:
在测试名称中清楚地描述之前和之后的状态。
通用模式: should change [属性-attribute] from [初始状态] to [结束状态]
包括异步操作的加载和结果状态。
通用模式: should [verb] [expected outcome] [during/after] [async operation]
明确错误的类型及其原因
通用模式: should show [specific error message] when [error condition]
使用领域语言而不是实现细节编写测试。
通用模式: should [business action] [business entity]
指定影响正在测试的行为的条件。
通用模式: should [expected behavior] when [precondition]
描述用户感知到的视觉变化。
通用模式: should [visual change] when [user action/condition]
将复杂的流程分解为清晰的步骤。
通用模式:
这是一个综合示例,展示了如何组合所有这些规则:
在提交测试之前,请验证其名称:
深思熟虑的测试命名是编写更好测试的更广泛领域的基本组成部分。为了保持整个团队的一致性:
- 详细记录您的命名约定
- 与所有团队成员分享这些准则
- 将指南集成到您的开发工作流程中
对于使用 GitHub Copilot 等 AI 工具的团队:
- 将这些指南纳入您的项目文档中
- 将包含这些规则的 markdown 文件链接到 Copilot
- 这种集成允许 Copilot 建议符合您约定的测试名称
有关将文档链接到 Copilot 的更多信息,请参阅: VS Code 实验增强了 AI Copilot 功能
通过执行这些步骤,您可以确保整个项目的测试命名保持一致、高质量。
评论区
评论加载中...