2009-10-07 58 views
2

我有一個名爲Parameter的Java對象,我試圖用groovy來嘲笑它。參數是一個具有1個抽象方法的抽象類。它也有一個名爲getName()的非抽象方法。我試圖在Groovy中如下嘲笑它:常規抽象方法

def p1 = [name:{"p1Name"}] as Parameter 

但是我得到一個運行時錯誤,因爲我沒有實現抽象方法。如果我試圖創建一個模擬,爲什麼我需要實現抽象方法?

感謝, 傑夫

回答

3

通過使用地圖嘲笑你正在創建類型參數的一個實例,所以它必須實現參數類的任何抽象方法。

abstract class Parameter { 
    abstract String getOtherName() 
    String getName() { return "test" } 
} 

def p1 = [name:{"p1Name"}, getOtherName:{""}] as Parameter 
+0

我最初預計這會像easymock的類擴展一樣,但我後來意識到它不會。謝謝。 – 2009-10-08 04:10:13