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