Logo
Section 1 / 5

测试金字塔与单元测试简介

了解单元测试的基本概念,以及它在测试金字塔中的位置。

导入

测试金字塔与单元测试简介

了解单元测试的基本概念,以及它在测试金字塔中的位置。

什么是单元测试?

单元测试是一种通过编写代码来验证某个“单元”正确性的方法。

什么是单元?

这里的“单元”可以是一个单独的方法、一个类,或者一组可被测试的类。

一个好的单元测试具备哪些特征?

一个编写良好的单元测试通常具有以下特点:

  • 执行速度快。
  • 可自动化且可重复运行。
  • 完全隔离——即独立于其他测试运行。
  • 结果始终一致——无论运行多少次、在什么环境下,测试结果都保持一致。
  • 易读性强——能够作为该单元行为的文档说明。

单元测试有哪些好处?

  • 能在软件开发生命周期(SDLC) 的早期阶段发现缺陷。
  • 确保代码按预期工作。
  • 在重构现有代码时提供信心。
  • 帮助新加入的开发者理解系统的当前行为。

接下来,我们来看单元测试在测试金字塔中的位置。

测试金字塔简介

程序员 Martin Fowler 曾说过:“测试金字塔是一种思考如何使用不同类型的自动化测试来构建均衡测试体系的方式。其核心观点是:相比通过 GUI 运行的高层级的端到端测试,你应该拥有更多的底层单元测试。”

在一个软件项目中,应用程序通常会在以下几个层级进行测试:

  • 单元测试
  • 集成测试
  • UI 测试

下图展示了每种测试在测试金字塔中所处的层级:

...
测试金字塔

随着我们在金字塔中向上移动,测试变得越来越复杂,执行速度也更慢,同时集成程度也随之提高。而在金字塔的底部,则是大量简单的单元。

此外,随着测试层级的上升,修复缺陷的成本也会逐渐增加。

在开始之前

JUnit 5 简介