私は似たようなGroovyクラスを持っています
class MyClass {
Foo 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
しかし、私がここに入らない理由のために、私はそれをすることができません。
ありがとう、ドン