我正在使用pytest和unittest模块。我想断言我正在测试的Mock
对象被访问过一次,我想断言它是用一个特定的值调用的,但只有许多参数中的一个。例如,如果模拟的方法是:
def my_method(arg1, arg2, arg3):
print(arg1)
,我用mocked_method(arg1=3, arg2='smthng', arg3=80)
调用模拟对象,我希望断言:mocked_method.assert_called_once_with(arg1=3)
,我不关心其余的参数。我该怎么做呢?
好吧,我发现我们可以用一种比使用ANY
更简单的方法来实现这一目标。在我的例子中是:
from unittest.mock import ANY
mocked_method.assert_called_once_with(arg1=3, arg2=ANY, arg3=ANY)