在软件开发中,单元测试是确保代码质量的重要手段。Python 提供了一个内置的测试框架——unittest,它功能强大、使用简单,非常适合初学者和专业开发者。本文将带你从零开始学习 Python unittest,即使你是编程小白,也能轻松上手!
unittest 是 Python 标准库中的一个模块,灵感来源于 Java 的 JUnit 框架。它支持测试用例组织、断言方法、测试套件以及测试运行器等功能。
使用 Python unittest,你可以为函数、类或模块编写独立的测试代码,验证它们是否按预期工作。这不仅能减少 bug,还能提升代码的可维护性。
我们先写一个简单的函数,然后为它编写测试。
def add(a, b): return a + b 创建一个名为 test_math.py 的文件,输入以下代码:
import unittestdef add(a, b): return a + bclass TestAddFunction(unittest.TestCase): def test_add_positive_numbers(self): result = add(2, 3) self.assertEqual(result, 5) def test_add_negative_numbers(self): result = add(-1, -1) self.assertEqual(result, -2) def test_add_zero(self): result = add(0, 5) self.assertEqual(result, 5)if __name__ == '__main__': unittest.main() 在终端中执行以下命令:
python test_math.py 如果一切正常,你会看到类似这样的输出:
...----------------------------------------------------------------------Ran 3 tests in 0.001sOK unittest.TestCase。test_ 开头的方法会被自动识别为测试用例。assertEqual()、assertTrue() 等,用于验证结果是否符合预期。| 方法 | 说明 |
|---|---|
assertEqual(a, b) | 判断 a == b |
assertTrue(x) | 判断 x 为真 |
assertIn(a, b) | 判断 a 在 b 中 |
assertRaises(exception, callable, ...) | 判断调用会抛出指定异常 |
import unittestclass Calculator: def add(self, a, b): return a + b def divide(self, a, b): if b == 0: raise ValueError("Cannot divide by zero") return a / bclass TestCalculator(unittest.TestCase): def setUp(self): self.calc = Calculator() def test_add(self): self.assertEqual(self.calc.add(10, 5), 15) def test_divide(self): self.assertEqual(self.calc.divide(10, 2), 5) def test_divide_by_zero(self): with self.assertRaises(ValueError): self.calc.divide(10, 0)if __name__ == '__main__': unittest.main() 通过本教程,你已经掌握了 Python unittest 的基本用法。无论你是想提升代码质量,还是准备面试,掌握 单元测试教程 中的核心技能都至关重要。记住,好的程序员不仅会写功能,更会写可靠的测试!
现在就动手试试吧!为你的项目添加测试,体验 Python测试框架 带来的安心与效率。如果你刚开始接触自动化测试,这篇 unittest入门 教程就是你最好的起点。
提示:保持测试用例简洁、独立,并覆盖各种边界情况,才能最大程度发挥单元测试的价值。
本文由主机测评网于2025-12-14发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/2025127797.html