Python 单元测试允许多个可能的 Return 值

Python Unittest Allow Multiple Possible Return Values

我正在编写一个单元测试,它将 运行 用于我的 class 代码。对于他们必须编写的函数之一,他们可以 return 有两个可能的 return 值,其中任何一个都适合我的目的。

我一直在用

actual = my_function_call(arg1, arg2)
self.assertEqual(actual, expected)

但这不适用于接受两个有效 return 值之一,因此我将其更改为:

actual = my_function_call(arg1, arg2)
self.assertEqual(actual == expected1 or actual == expected2, True)

有没有一种不那么笨拙的方法来做到这一点?

你可以做到 assertTruein

self.assertTrue(actual in (expected1, expected2))

存在 assertIn 测试,您可以在这种情况下按如下方式使用它

self.assertIn(actual,[expected1,expected2])

它会检查 actual 是否存在于包含 expected1expected2 的列表中。