练习:用 Go 的「测试驱动开发」练基础语法

go基础 › 练习 01 · TDD 基础闯关 (第 1 章)
文章工具

每学一个语法点,先写一个失败的测试,再让代码把它跑绿。

本练习要实现的模块(示意图)
图:本练习要实现的模块(示意图)

项目目标

用 table-driven tests(表驱动测试)练 Go 的基础:整数、字符串、切片、map,全部测试先行。

要做的功能

核心功能(必做)

  • 先写测试、再写实现,覆盖整数运算、字符串、切片、map 的基本操作。
  • 用表驱动测试一次覆盖多个用例。
  • 实现一个整数计算器包(加减乘除),测试先行。
  • 用 go test 跑通,并查看测试覆盖率。
  • 实现斐波那契、阶乘等函数,并测试边界(0、负数)。

进阶功能(选做)

  • 用 benchmark 对比两种实现的性能
  • 用 error 与自定义错误类型
  • 用泛型写通用的 Min/Max

会练到的知识点

  • go test 与表驱动测试
  • 切片与 map
  • 函数与方法
  • 错误处理 error
  • 包与模块

验收标准

  • go test 全部通过
  • 覆盖率能看到提升
  • 边界用例有断言

难度与工期

难度:★★☆ · 建议工期:3–5 天 · 适合:刚装好 Go、想系统练语法

参考实现(GitHub)

先自己动手实现,卡住了再对照参考;也可以只看它的目录结构,别直接照抄。

quii/learn-go-with-tests —— 以测试驱动讲 Go 的经典教程,边写测试边学语法。

加分项

  • 给每个练习写文档注释
  • 把包拆成多个文件
  • 写一个 Makefile 统一跑测试

建议做法:先把「核心功能」列成本地待办,每完成一项就跑一次;做完再回头看参考实现,对比自己的设计差在哪。

⚠️ 版权声明

本文为免费文章,欢迎转载。转载请注明出处:一木科技(https://www.pingquan.vip/2026/10/14/practice-go-tdd/),并保留原文链接。