我也有類似的一個Groovy類Groovy:在存根類型引用
class MyClass {
Foo foo
}
在某些情況下我不想初始化foo和想踩滅了所有給它的調用。任何返回值的方法都不應該做任何事情。我能做到這一點是這樣的:
Foo.metaClass.method1 = {param -> }
Foo.metaClass.method2 = { -> }
Foo.metaClass.method3 = {param1, param2 -> }
雖然這工作,它有幾個問題
- 繁瑣和冗長的,特別是如果美孚有很多方法
- 這將踩滅調用美孚(不只是富)的任何實例
雖然Groovy提供一個StubFor類,如果我這樣做:
this.foo = new groovy.mock.interceptor.StubFor(Foo)
我在運行時得到一個ClassCastException。雖然如果我能重新定義富,因爲這會工作:
def foo
但對於原因,我不會進入這裏,我不能這樣做。
謝謝, 唐