我正在尝试在我的 pytests 中使用 pytest-mock。
如何在同一个测试中模拟一个对象方法并验证该对象方法的参数?
在我的示例中,我想模拟类 Engine 中的方法“test_function”。我想检查一次使用预期参数调用方法“test_function”。
我目前使用 monkeypatch 和 mocker.patch.object 的方法很复杂,而且不起作用。当 mocker.patch.object 处于活动状态时,不会调用 mock_function。
def test(monkeypatch, mocker):
def mock_function(*args, **kwargs):
pass
monkeypatch.setattr(Engine, "test_function", mock_function)
mock_object = mocker.patch.object(Engine, "test_function")
service = Service(Engine())
service.call_test_function("param", "param1", [["value"]])
mock_object.assert_called_once_with("param", "param1", [["value"]])
此外,是否也可以使用类对象测试“assert_called_one_with”?