我試圖嘲笑一個協程。因此,這個模擬的__next__()
和close()
被調用。雖然嘲諷close()
作品,我不能嘲笑__next__()
:如何模擬對__next__的呼叫
mock_coroutine = mock.Mock()
mock_coroutine.some_call(1, 2, 3)
mock_coroutine.some_call.assert_called_with(1, 2, 3)
mock_coroutine.close()
mock_coroutine.close.assert_called_with()
#this fails
mock_coroutine.__next__()
mock_coroutine.__next__.assert_called_with()
我缺少什麼?如何確保我的模擬的__next__()
方法被調用?
現在,我使用了以下內容:
class MockCoroutine:
def __next__(self):
self.called_next = True
def close(self):
self.called_exit = True
但是,我非常喜歡使用一個標準的模擬。
這工作。坦克很多! – AlexC