2013-06-30 39 views
-1

我有一個工廠類carfactory,我創建了一個模擬對象。模擬對象不能工作

def mockCar = Mock(Car) 
def mockFactory = Mock(CarFactory) 
this.mockCar.getDoors(_) >> ["a","b"] 
this.mockFactory.getCar(_) >> this.mockCar 

現在,當測試運行我從工廠mockCar對象,但沒有設定從getDoors(_)調用。 我收到一個空集。

回答

3

this.的用法不正確,因爲mockCarmockFactory是局部變量,而不是實例字段。解決這個問題後,顯示的代碼工作正常(我只是在Spock Web Console雙重檢查)。如果你回到空集,很可能你的真實代碼有另一個問題沒有在這裏顯示。

+0

問題發生在像這樣的實際代碼中,當我打電話給carfactory,getcar我找回mockCar。然而,當我在下一行中調用mockCar.getDoors時,我不再獲得集合。 –

+2

你必須提供一個最小可重現的例子。從上面的Spock Web控制檯鏈接中可以看出,您在初始文章中顯示的代碼工作正常(修復'this.'後)。另外請確保使用最新的Spock版本(0.7),但我懷疑它會有所作爲。 –