如何使用Mock @patch获取调用次数?

9 浏览
0 Comments

如何使用Mock @patch获取调用次数?

我正在为我们正在开发的某个库编写单元测试。这个库使用requests.post()来向外部服务器执行POST HTTP请求。

在我的UT中,我显然不想联系真实的服务器,而是模拟响应。

为此,我写了一个函数,如下所示:

def mocked_post(url, headers, data, **kwargs):
    response = Mock()
    # 一些逻辑,在这里不相关。
    return response

然后我在我的单元测试类周围修补了这个函数:

@patch('mylib.requests.post', mocked_post)
class MyTest(TestCase):
    def test_foo(self):
        # 一些测试逻辑

这个工作得很完美。

现在我想获得对我的模拟函数调用的次数。我尝试了mocked_post.call_count,但它不存在。我尝试在许多不同的对象上找到这个属性(包括mylib.requests.post),但到目前为止没有运气。

如何访问这个模拟函数的call_count

0