unittest
是 Python 的标准库之一,用于编写和运行测试。它提供了一个框架,用于组织测试、设置和清理测试环境、以及运行测试。以下是一个简单的 unittest
测试架构示例:
1. 定义被测试的代码
首先,我们需要有一些代码来进行测试。假设我们有一个简单的函数,用于计算两个数字的和:
# calculator.py
def add(x, y):
return x + y
2. 编写测试用例
然后,我们编写测试用例来测试这个函数。每个测试用例都继承自 unittest.TestCase
,并定义一些以 test_
开头的方法,这些方法包含了实际的测试逻辑。
# test_calculator.py
import unittest
from calculator import add
class TestCalculator(unittest.TestCase):
def test_add_positive_numbers(self):
self.assertEqual(add(2, 3), 5)
def test_add_negative_numbers(self):
self.assertEqual(add(-2, -3), -5)
def test_add_zero_to_number(self):
self.assertEqual(add(0, 5), 5)
self.assertEqual(add(5, 0), 5)
if __name__ == '__main__':
unittest.main()
在这个例子中,我们定义了三个测试用例:
test_add_positive_numbers
:测试正数相加。test_add_negative_numbers
:测试负数相加。test_add_zero_to_number
:测试将零加到数字上。
3. 运行测试
最后,我们运行测试。在命令行中,你可以使用 Python 解释器来运行测试脚本:
python -m unittest test_calculator.py
这将输出测试结果,包括每个测试用例是否通过,以及总的测试结果。如果所有的测试用例都通过,那么测试就是成功的。如果有任何测试用例失败,那么测试就会失败,并显示哪个测试用例失败了。
额外的功能
unittest
提供了许多其他的功能,可以帮助你编写更复杂的测试。例如:
setUp
和tearDown
方法:在每个测试用例运行之前和之后执行代码。skip
装饰器:跳过某些测试用例。subTest
上下文管理器:在一个测试用例中运行多个子测试。- 断言方法:如
assertTrue
、assertFalse
、assertRaises
等,用于验证代码的行为是否符合预期。
你可以查阅 Python 官方文档来了解更多关于 unittest
的信息。