我在处理Mock.call_args_list
返回的嵌套元组时遇到了一些问题。
def test_foo(self):
def foo(fn):
fn('PASS and some other stuff')
f = Mock()
foo(f)
foo(f)
foo(f)
for call in f.call_args_list:
for args in call:
for arg in args:
self.assertTrue(arg.startswith('PASS'))
我想知道是否有更好的方法来解包mock对象上的call_args_列表,以便做出我的断言。这个循环是有效的,但感觉一定有一个更直接的前进方向。
一个更好的方法可能是建立预期的自我调用,然后使用直接断言:
请注意,调用必须是连续的,如果不希望这样,则重写断言的
any_order
kwarg。还要注意,允许在 指定的调用。如果不需要,则需要添加另一个断言:
针对mgilson的注释,下面是创建可用于通配符相等性比较的虚拟对象的示例:
以及故障模式示例:
相关问题 更多 >
编程相关推荐