gpt4 book ai didi

python - 单元测试 : How to assert multiple calls of same method?

转载 作者:太空狗 更新时间:2023-10-29 17:17:57 29 4
gpt4 key购买 nike

我有一个方法,它使用不同的参数调用另一个方法两次。

class A(object):
def helper(self, arg_one, arg_two):
"""Return something which depends on arguments."""

def caller(self):
value_1 = self.helper(foo, bar) # First call.
value_2 = self.helper(foo_bar, bar_foo) # Second call!

使用 assert_called_with 帮助我只断言第一个调用,而不是第二个调用。甚至 assert_called_once_with 似乎也没有帮助。我在这里错过了什么?有什么方法可以测试这样的调用吗?

最佳答案

您可以使用 mock_calls其中包含对方法的所有调用。此列表包含第一次调用、第二次调用以及所有后续调用。因此,您可以使用 mock_calls[1] 编写断言来说明有关第二个调用的某些内容。


例如,如果 m = mock.Mock() 并且代码执行 m.method(123) 那么您可以这样写:

assert m.method.mock_calls == [mock.call(123)]

它断言对 m.method 的调用列表恰好是一个调用,即带有参数 123 的调用。

关于python - 单元测试 : How to assert multiple calls of same method?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20270903/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com