【发布时间】:2019-07-10 17:22:42
【问题描述】:
我在搞乱unittest.mock 并遇到了一些问题。
我有一个对象client,方法为get_messages(),它返回response,属性为data 和has_more。我想模拟它以在第一次调用中返回固定的 data 和 has_more,在第二次调用中返回另一个固定的 data 和 has_more。
在第一次通话中,我想接收带有属性的对象response:
data=['msg1', 'msg2']
has_more=True
在第二次通话中,我想接收带有属性的对象response:
data=['msg3', 'msg4']
我一直在尝试这样做,但我有点困惑,不知道是不是这样。
@patch('Client')
def test_client_returns_correct_messages(self, MockClient):
MockWebClient.get_messages.side_effects = [
Mock(name='response',
data={'messages': received_messages,
'has_more': True}),
Mock(name='response',
data={'messages': received_messages,
'has_more': False})]
messages = client.get_messages()
【问题讨论】:
-
看看side_effect功能
标签: python unit-testing mocking python-unittest