import unittest
from parameterized import parameterized
def add(x, y):
return x+y
"""
问题:
如果有三组数据需要测试?
[(1,1,2), (1,2,3), (0,3,3)]
"""
def get_data():
return [(1, 2, 3), (3, 0, 3), (2, 1, 3)]
# 定义测试类 并 继承
class Test01(unittest.TestCase):
# 定义测试方法 注意:以test字母开头
@parameterized.expand(get_data())
def test_add(self, a, b, expect):
# 调用 要是的函数
result = add(a, b)
assert result == expect
首先,代码定义了一个简单的 `add` 函数,它接受两个参数 `x` 和 `y`,并返回它们的和。
然后,代码定义了一个 `get_data` 函数,它返回一个包含三组数据的列表。每组数据都是一个元组,包含三个元素:两个要加的数字和一个期望的结果。
接下来,代码导入了 `unittest` 和 `parameterized`。`parameterized` 库允许您为测试方法提供多个参数,从而可以用同一套测试代码测试不同的输入数据。
`Test01` 类继承自 `unittest.TestCase`,这意味着它是一个测试类。在这个类中,`test_add` 方法是一个测试方法,它使用 `@parameterized.expand` 装饰器来扩展测试用例。`@parameterized.expand(get_data())` 表示 `test_add` 方法将使用 `get_data()` 函数返回的每组数据作为参数来调用。
`test_add` 方法接受三个参数:`a`、`b` 和 `expect`。这些参数分别对应于 `get_data` 函数返回的每组数据中的两个加数和期望的结果。在测试方法中,调用 `add(a, b)` 来获取实际的结果,并使用 `assert` 语句来断言实际结果与期望结果相等。
通过则:
不通过则: