unittest怎么设置parameter
时间: 2023-12-11 21:03:54 浏览: 28
在 unittest 中,我们可以使用 `@parameterized` 装饰器来设置参数化测试。`@parameterized` 装饰器可以接收一个列表,其中包含多个元组,每个元组表示一组参数。在每次测试运行时,unittest 会将这些参数传递给测试函数,以便测试函数可以使用不同的参数运行多次。
以下是一个简单的例子,展示了如何使用 `@parameterized` 装饰器:
```python
import unittest
from parameterized import parameterized
def add(x, y):
return x + y
class TestAddition(unittest.TestCase):
@parameterized.expand([
(1, 2, 3),
(0, 0, 0),
(-1, 1, 0),
(2.5, 2.5, 5)
])
def test_addition(self, x, y, expected_result):
result = add(x, y)
self.assertEqual(result, expected_result)
if __name__ == '__main__':
unittest.main()
```
在这个例子中,我们定义了一个函数 `add()`,它接收两个参数,并返回它们的和。我们还定义了一个测试类 `TestAddition`,它包含一个测试函数 `test_addition()`,该函数使用 `@parameterized` 装饰器进行参数化测试。
`@parameterized` 装饰器接收一个列表,其中包含多个元组,每个元组表示一组参数。在这个例子中,我们定义了四组参数,每组参数包含三个元素:`x`、`y` 和 `expected_result`。在每次测试运行时,unittest 会将这些参数传递给测试函数 `test_addition()`,以便测试函数可以使用不同的参数运行多次。
在测试函数 `test_addition()` 中,我们使用传递的参数调用函数 `add()`,并将结果与 `expected_result` 进行比较。如果结果与预期结果不匹配,测试将失败。
当我们运行上面的代码时,unittest 将执行四个测试用例,每个测试用例都使用不同的参数调用测试函数 `test_addition()`。如果所有测试用例都通过,测试将通过。否则,测试将失败,并显示有关失败的详细信息。
希望这个例子能够帮助你了解如何在 unittest 中设置参数化测试。