本课程将介绍 Web 测试并探索相关知识。
在本课程中,您将学习以下内容:
- 测试基础知识
- 自动测试与手动测试
- 在何处以及如何运行测试
- 最佳实践
- 测试的理念,包括测试什么、谁负责,以及如何考虑如何测试一种实现目标的方法,而不是作为目标本身。
本课程还提供了简洁实用的示例代码,以供您学习。
本课程涵盖前端的 JavaScript 和文档模型,以及后端的库测试,在 Node.js 等环境中运行。本教程假定没有测试背景,但您需要有 JavaScript 基础以及 Node.js 或类似工具方面的经验。无论是新手还是有经验的开发者,都可以参考。
由于大多数测试框架和工具都使用同一种语言,因此“学习测试”采用一种通用方法来进行测试。如果需要明确具体,我们将使用 Vitest(一个日益热门的测试框架),并演示如何测试使用 React 或 Lit 编写的 Web 组件。如需详细了解此方案,请参阅附录。
您可以完整学习本课程,但也可以将其用作特定主题的参考。如果相关,课程中会提供资源的链接。
您将了解以下内容:
开始测试
什么是测试
本文简要介绍了测试,其中包括在 JavaScript 中进行测试的实际示例。此外,本页面还介绍了每项测试的规模。
运行测试的位置
测试可以帮助您提高工作效率和编写软件,虽然可以使用命令行手动运行测试,但也可以将其作为自动化流程或构建系统的一部分运行。
测试环境
Node 等运行时工具适用于通用代码,而用于浏览器的测试代码可以在模拟环境中运行,也可以使用专为浏览器测试设计的框架运行。
自动化测试的类型
了解测试类型的常见分类,这些分类大多与其规模相对应。重要的是,测试类型没有严格的定义,会根据您的需求而发生变化。
要测试的内容和采用的方法
确定代码库中最重要的部分以进行严格的测试,这可能是一个艰难的决定。本单元介绍将测试作为一种手段的概念,以及如何评估代码以进行测试。
组件测试实际应用
在本单元中,您将学习如何测试不太理想的 React 组件。该示例通过三个不同的示例使用 Vitest:拦截使用 fetch()
发出的网络流量、模拟外部依赖项,以及使用 React 的 Context
提供仅用于测试的自定义代码。
静态分析
使用 TypeScript 和 ESLint 等工具(而非成熟的测试方法)可以提供一种自动检查。本单元将讨论这些替代工具。
断言和其他基元
交易工具
了解大多数测试库或框架通用的基元(包括 test()
和 assert
),它们将是您使用 JavaScript 编写的每项测试的支柱。
即将推出
- 避免常见的测试陷阱
- 测试替身
- 测试库和实用程序
- 确定测试框架
本部分的其余内容将包含更多有关测试框架和库、它们的使用方式,以及如何决定使用哪个及哪些其他工具的页面。
即将推出:问题驱动型测试
您将学习应对一些常见 Web 测试挑战的模式。
即将推出:自动化测试实际应用
这是一个实用的部分,介绍了如何测试使用 Next.js 构建的电子商务网站,其中包括您可以自行查看和学习的代码。您将了解如何测试其组件、如何使用其外部服务(包括付款)进行测试,以及如何为具有可选登录页面的网站构建端到端测试。
即将推出:测试理念
测试可能是一项工程挑战,但了解要测试的内容、负责人以及最佳实践对开发团队来说也可能是一个挑战。
即将推出:编写可测试代码
本课程将提供有关测试现有代码的指导,但您的团队可以采用各种模式来使代码更易于测试。本部分将介绍一些方法。