我有一个使用 MonkeyPatch 来测试某些功能的测试库。我想向这个库添加一个测试来测试对我的端点的请求调用 functionB()。
我使用 Mock() 库来创建模拟函数,然后我使用 MonkeyPatch.setattr() 传递它。但是,模拟函数永远不会被调用并且断言总是失败。我究竟做错了什么?
mock_function_B = Mock()
monkeypatch.setattr(file, 'function_B', mock_function_B)
params = json.dumps({'foo': "bar"})
res = client.post('/some_endpoint', headers=content_type_json, data=params)
assert res.status_code == 201
assert mock_function_B.call_count == 1
Run Code Online (Sandbox Code Playgroud)
我希望 call_count 为 1,因为我知道 some_endpoint 调用 function_B(并且从日志中,我看到它已被调用)但是,断言失败,因为 call_count 为 0。