2013-05-08 60 views
1

嘲笑的方法與mock是很簡單的,例如,像這樣:Python的模擬庫,在模擬函數中只返回一次值?

​​

但是,這將使每一次get_idlist()回報[1]。有沒有辦法讓它僅返回[1]一次,並且隨後的調用返回[](例如),而不使用side_effect=somefun?我想我想要什麼一種副作用,但是你去了。

(我只是覺得它是如此笨拙只創建一個大鳴喇叭命名函數,該函數...或者是有在這裏使用lambda的方式?)

回答

1

我認爲,只有這樣,才能做你想做的與python-mock庫正在使用side_effect。 我可以給你一個替代方案:

看看mockito庫。 有了它很容易讓你想要什麼:

from mockito import when 

when(o).get_idlist().thenReturn([1]).thenReturn([]) 
+1

仙,人,是圖書館的Mockito小艾*真棒*。但我無法每15分鐘重新評估一次模擬庫,也得做一些真正的編碼。 :-)也許下一個項目我會嘗試mockito。它看起來應該有更多的名望和榮耀。 – 2013-05-08 12:39:53