我正在尝试从Mock对象返回一个列表,但无法使其正常工作。
那是代码:
def execute_call(model, payload):
result = model.execute(payload)
code = result[0]
这是我尝试过的测试:
def test_get_code(self, session):
execute_call = Mock()
execute_call.return_value = ['123', '123', '123']
session.return_value = Mock(execute=execute_call)
结果:
code = result[0]
TypeError: 'Mock' object does not support indexing
我不知道如何使result [0]正常工作。 “ execute_call”应该是模拟的,但是return_value必须是一个列表。
任何想法都值得赞赏。
答案 0 :(得分:0)
def execute_call(model, payload):
result = model.execute(payload)
code = result[0]
def test_execute_call(self):
mock_model = mock.MagicMock()
mock_model.execute = mock.MagicMock(return_value=(a,b,c)
self.execute_call(mock_model, payload)
assert whatever
您需要将模拟对象传递给函数,以便可以使用它。