基本上我想这样做替代类:如何嘲笑/一个列表
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