欢迎使用学习测试!

本课程将介绍 Web 测试并探索相关知识。

在本课程中,您将学习以下内容:

  • 测试基础知识
  • 自动测试与手动测试
  • 在何处以及如何运行测试
  • 最佳实践
  • 测试的理念,包括测试什么、谁负责,以及如何考虑如何测试一种实现目标的方法,而不是作为目标本身。

本课程还提供了简洁实用的示例代码,以供您学习。

本课程涵盖前端的 JavaScript 和文档模型,以及后端的库测试,在 Node.js 等环境中运行。本教程假定没有测试背景,但您需要有 JavaScript 基础以及 Node.js 或类似工具方面的经验。无论是新手还是有经验的开发者,都可以参考。

由于大多数测试框架和工具都使用同一种语言,因此“学习测试”采用一种通用方法来进行测试。如果需要明确具体,我们将使用 Vitest(一个日益热门的测试框架),并演示如何测试使用 ReactLit 编写的 Web 组件。如需详细了解此方案,请参阅附录

您可以完整学习本课程,但也可以将其用作特定主题的参考。如果相关,课程中会提供资源的链接。

您将了解以下内容:

开始测试

什么是测试

本文简要介绍了测试,其中包括在 JavaScript 中进行测试的实际示例。此外,本页面还介绍了每项测试的规模。

运行测试的位置

测试可以帮助您提高工作效率和编写软件,虽然可以使用命令行手动运行测试,但也可以将其作为自动化流程或构建系统的一部分运行。

测试环境

Node 等运行时工具适用于通用代码,而用于浏览器的测试代码可以在模拟环境中运行,也可以使用专为浏览器测试设计的框架运行。

自动化测试的类型

了解测试类型的常见分类,这些分类大多与其规模相对应。重要的是,测试类型没有严格的定义,会根据您的需求而发生变化。

要测试的内容和采用的方法

确定代码库中最重要的部分以进行严格的测试,这可能是一个艰难的决定。本单元介绍将测试作为一种手段的概念,以及如何评估代码以进行测试。

组件测试实际应用

在本单元中,您将学习如何测试不太理想的 React 组件。该示例通过三个不同的示例使用 Vitest:拦截使用 fetch() 发出的网络流量、模拟外部依赖项,以及使用 React 的 Context 提供仅用于测试的自定义代码。

静态分析

使用 TypeScript 和 ESLint 等工具(而非成熟的测试方法)可以提供一种自动检查。本单元将讨论这些替代工具。

断言和其他基元

交易工具

了解大多数测试库或框架通用的基元(包括 test()assert),它们将是您使用 JavaScript 编写的每项测试的支柱。

即将推出

  • 避免常见的测试陷阱
  • 测试替身
  • 测试库和实用程序
  • 确定测试框架

本部分的其余内容将包含更多有关测试框架和库、它们的使用方式,以及如何决定使用哪个及哪些其他工具的页面。

即将推出:问题驱动型测试

您将学习应对一些常见 Web 测试挑战的模式。

即将推出:自动化测试实际应用

这是一个实用的部分,介绍了如何测试使用 Next.js 构建的电子商务网站,其中包括您可以自行查看和学习的代码。您将了解如何测试其组件、如何使用其外部服务(包括付款)进行测试,以及如何为具有可选登录页面的网站构建端到端测试。

即将推出:测试理念

测试可能是一项工程挑战,但了解要测试的内容、负责人以及最佳实践对开发团队来说也可能是一个挑战。

即将推出:编写可测试代码

本课程将提供有关测试现有代码的指导,但您的团队可以采用各种模式来使代码更易于测试。本部分将介绍一些方法。