20 分钟
工程化

unittest 单元测试

使用 unittest 编写和运行测试

  • 理解测试驱动开发
  • 编写 unittest 测试用例
  • 使用 setUp/tearDown

第一个测试

示例代码(可运行)

常用断言

示例代码(可运行)

setUp 和 tearDown

示例代码(可运行)
💡测试原则

一个测试只测一个行为。测试名称要描述场景:test_divide_by_zero_raises_error。先写测试再写代码(TDD)能写出更好的设计。

预测输出
print(3 > 2 and 1 > 2)
找 Bug用assert而非self.assertXxx,测试失败时unittest无法正确捕获和报告。
class T(unittest.TestCase): def test_add(self): assert add(2,2) == 5
填空题填写空白处的代码
self.Equal(a, b) # 断言相等
选择题

每个测试前执行的方法?

资深工程师加餐

底层原理 · 大厂视角 · 工程经验,点卡片展开

底层是大量、快速、稳定的单元测试(优先覆盖纯函数与边界/异常路径),中间是少量集成测试(验证模块协作),顶端是少量端到端测试(慢且脆)。测试最大的价值是当「安全网」:有它你才敢放心重构。没测试兜底的重构,本质是在赌博。写用例先想正常、边界、异常三类。

挑战任务

unittest挑战

简单+50 XP

给字符串工具函数写完整测试。

unittest挑战
2 个测试用例

课后作业

计算器测试

中等+20 XP

给加减乘除计算器写完整测试。

计算器测试
1 个测试用例