2
我有一個名爲Parameter的Java對象,我試圖用groovy來嘲笑它。參數是一個具有1個抽象方法的抽象類。它也有一個名爲getName()的非抽象方法。我試圖在Groovy中如下嘲笑它:常規抽象方法
def p1 = [name:{"p1Name"}] as Parameter
但是我得到一個運行時錯誤,因爲我沒有實現抽象方法。如果我試圖創建一個模擬,爲什麼我需要實現抽象方法?
感謝, 傑夫
我有一個名爲Parameter的Java對象,我試圖用groovy來嘲笑它。參數是一個具有1個抽象方法的抽象類。它也有一個名爲getName()的非抽象方法。我試圖在Groovy中如下嘲笑它:常規抽象方法
def p1 = [name:{"p1Name"}] as Parameter
但是我得到一個運行時錯誤,因爲我沒有實現抽象方法。如果我試圖創建一個模擬,爲什麼我需要實現抽象方法?
感謝, 傑夫
通過使用地圖嘲笑你正在創建類型參數的一個實例,所以它必須實現參數類的任何抽象方法。
abstract class Parameter {
abstract String getOtherName()
String getName() { return "test" }
}
def p1 = [name:{"p1Name"}, getOtherName:{""}] as Parameter
我最初預計這會像easymock的類擴展一樣,但我後來意識到它不會。謝謝。 – 2009-10-08 04:10:13