【发布时间】:2021-09-23 12:18:00
【问题描述】:
我正在为模型编写单元测试。该调用返回一个空列表,我不确定如何调试出了什么问题。 这是我的代码:
@patch('app.models.client.post')
def test_something(self, mock):
method_mock.return_value = None
payloads = [json.loads(call[2]['data']) for call in mock.mock_calls]
# do something else
self.assertEquals('stuff', payloads[0]['x']['y'])
我注意到mock.mock_calls 返回[],因此断言中的错误list index out of range
我在这里错过了什么?
提前致谢!
【问题讨论】:
-
您是否调用了一个会影响您的 app.models.client.post 函数的函数?如果不是, mock_calls 将为空。 mock_calls 是每次调用 mock 时的
Call对象列表,因此如果您设置 mock,则它是空的,然后立即询问它是如何被调用的。 -
client 基本上是 models.py 中的
client = requests.Session()。这就是到目前为止的所有用法
标签: python unit-testing python-decorators