我有一个类似于的 Groovy 类
class MyClass {
Foo foo
}
在某些情况下,我不想初始化 foo 并希望删除对它的所有调用。任何返回值的方法都不应该做任何事情。我可以这样做:
Foo.metaClass.method1 = {param -> }
Foo.metaClass.method2 = { -> }
Foo.metaClass.method3 = {param1, param2 -> }
虽然这会起作用,但它有几个问题
- 繁琐而冗长,尤其是如果 Foo 有很多方法
- 这将消除对 Foo 的任何实例的调用(不仅仅是 foo)
尽管 Groovy 提供了一个 StubFor 类,但如果我这样做:
this.foo = new groovy.mock.interceptor.StubFor(Foo)
我在运行时收到 ClassCastException。虽然如果我可以将 foo 重新定义为:
def foo
但是由于我不会进入这里的原因,我不能这样做。
谢谢,唐