第 2 章 单元测试要点
在上一章中,我们学习了如何使用 TDD 编写测试并与代码并行编写,以及它如何融入到敏捷项目方法论中。我们介绍了 红、绿、重构方法,这要求在源代码和测试代码之间频繁切换。
刚开始使用 TDD 时,按照规定的过程编写代码可能看起来是一种人为的工作方式,但通过实践,这很快会成为一种自然而然的工作方式。在本章中,我们将学习开始使用 Go 语言时所需的基本知识。我们将开始使用 Go 的测试包编写单元测试,重点关注测试编写的语法和过程。
本章将让我们亲自实践到目前为止所探讨的所有概念。正如我们在第 1 章《掌握测试驱动开发》中看到的测试金字塔,单元测试是最为常见的测试类型。它们用于验证单个单元的功能,且是独立进行的。我们将通过实现单元测试,开始探索 TDD 和 Go 测试。
Go 编程语言是由 Google 团队创建的,旨在让开发者编写简单高效的软件,这是他们当时认为使用现有工具无法实现的目标。这种简洁性原则贯穿整个语言,包括其测试编写和运行功能。
Go 的标准库提供了 testing
包,这为我们编写自动化测试提供了基本工具。测试就是满足特定约定和签名的函数,这使得开发者可以使用与编写源代码相同的策略和机制来编写测试代码。
Go 的工具链提供了一个简单而强大的 go test
命令,用于运行我们定义的所有测试。这个命令还提供了运行基准测试的功能,我们可以利用它来检查给定组件的性能。
本章将涵盖以下主要内容:
-
Go 包作为单元测试(UUT)
-
使用 Go 的
testing
包的基础知识 -
测试的设置和清理
-
使用子测试将测试分组到测试套件中
-
测试和基准测试的区别
技术需求
为了运行本章中的代码示例,您需要安装 Go 1.19 或更高版本。安装过程可以参阅 Go 官方文档: https://go.dev/doc/install。
本书中包含的代码示例可以在以下 GitHub 地址公开获取: https://github.com/PacktPublishing/Test-Driven-Development-in-Go/chapter02。