基本上我想這樣做替代類:如何嘲笑/一個列表
class SeaLion(object):
def __iter__(self):
return self
def next(self):
...
def train():
sea_lion = SeaLion(...)
for tooth in sea_lion:
.. do something
然後在我的測試文件我有:
class TestTrain(TestCase):
@patch('module.SeaLion')
def test_train(self, mock_SeaLion):
mock_SeaLion.return_value = [1,2,3]
...
基本上我想sea_lion在訓練函數是一個列表而不是該類的一個實例。
與上面的代碼sea_lion是MagicMock(名稱= '海獅()')
'mock_SeaLion = MagicMock()' - 你需要閱讀[Python中的分配方式](http://nedbatchelder.com/text/names.html),因爲爲你的'mock_SeaLion'局部變量分配一個新的值顯然是錯誤的。 – user2357112
好點。我拿出了那條線。儘管如此,同樣的問題。 – Greg
您的解決方案應該可以工作。你能不能澄清你的問題? – zanseb