我想在Python中为一个具有多个返回值的方法创建一个unittest。例如,让我说我想测试以下方法:
def example(x, y):
sum = x + y
dif = x - y
return sum, dif
有没有办法对这种方法进行单元测试? (我知道我可以用两种不同的方法将上述内容分开,但这只是一个天真的例子)
答案 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