文章内容
2024/2/1 23:47:15,作 者: 黄兵
Python 单元测试示例
在Python中,编写单元测试通常使用内置的 unittest 模块。以下是一个简单的示例来演示如何编写和运行单元测试:
假设有一个简单的函数,对两个数字进行相加:
# adder.py
def add_numbers(a, b):
return a + b现在,我们将编写一个单元测试来测试这个函数:
# test_adder.py
import unittest
from adder import add_numbers
class TestAdder(unittest.TestCase):
def test_add_numbers(self):
result = add_numbers(2, 3)
self.assertEqual(result, 5, "Expected sum of 2 and 3 to be 5")
if __name__ == '__main__':
unittest.main()
在这个例子中,我们创建了一个测试类 TestAdder,其中包含一个测试方法 test_add_numbers。测试方法使用 self.assertEqual 来断言 add_numbers(2, 3) 的结果是否等于预期的值。
要运行测试,可以在命令行中执行以下命令:
python -m unittest test_adder.py
这将运行 test_adder.py 文件中的所有测试,并显示测试结果。
请注意,单元测试应该涵盖不同的情况,包括边界情况和错误情况。此外,还可以使用 setUp 和 tearDown 方法在测试运行前后执行一些设置和清理工作。
测试的初始化
如果我们需要在测试的时候需要初始化一些环境变量,在 unittest 中,您可以使用 setUp 方法在每个测试方法运行之前初始化一些参数。setUp 方法将在每个测试方法执行之前调用,这样可以确保每个测试都从相同的起点开始。
以下是一个示例:
import unittest
from my_module import MyClass
class TestMyClass(unittest.TestCase):
def setUp(self):
# 初始化一些参数,创建对象等
self.my_object = MyClass(initial_value=42)
def test_method_1(self):
# 使用已初始化的对象进行测试
result = self.my_object.method_1()
self.assertEqual(result, expected_result_1)
def test_method_2(self):
# 使用已初始化的对象进行测试
result = self.my_object.method_2()
self.assertEqual(result, expected_result_2)
if __name__ == '__main__':
unittest.main()
在这个例子中,setUp 方法创建了一个 MyClass 的实例并将其存储在 self.my_object 中。测试方法 (test_method_1 和 test_method_2) 可以使用已初始化的对象进行测试。这确保了测试方法之间的独立性,因为每个测试方法都会在相同的条件下运行。
请注意,setUp 方法的名称是固定的,它是 unittest 框架约定的。同样,如果需要在每个测试方法运行后执行一些清理工作,可以使用 tearDown 方法。
其它相关推荐:
评论列表