Python中的单元测试,用于具有多个返回值的方法

时间:2018-02-19 21:55:17

标签: python unit-testing

我想在Python中为一个具有多个返回值的方法创建一个unittest。例如,让我说我想测试以下方法:

def example(x, y):
    sum = x + y
    dif = x - y
    return sum, dif

有没有办法对这种方法进行单元测试? (我知道我可以用两种不同的方法将上述内容分开,但这只是一个天真的例子)

3 个答案:

答案 0 :(得分:4)

捕获所有返回值,然后单独测试它们。

...
    numsum,dif = example(5,3)
    self.assertEqual(numsum,8)
    self.assertEqual(dif,2)

或者,@sleigh_bells指出将元组与返回的元组进行比较:

self.assertEqual(example(5,3),(8,2))

答案 1 :(得分:1)

您可以定义一个具有预期结果的元组变量并将其提供给 assert 函数:

expected_result = (15, 5)
self.assertEqual(example(10,5), expected_result)

答案 2 :(得分:0)

你可以做到

assertEqual([sum, dif], [expected_sum, expected_dif])

根据Python文档,这实际上将运行assertListEqual,因为传入了两个列表。

https://docs.python.org/3/library/unittest.html#unittest.TestCase.assertListEqual