いくつかの単体テストのために、ビルダーの複雑なメソッドをオーバーライドしようとしています。これはWebサービスリクエストビルダーであるため、ビルダークラスには。という名前のリクエストタイプのインスタンス変数がありますrequest
。
だから私はこれをやろうとしています:
def mockBuilder = [complexMethod:{request.setAnAttribute(it)}] as MyBuilder
単体テストを実行すると、メソッドが欠落している例外が発生します
No such property: request for class:com.xx.etc.MyBuilderTest
私は最初に行くようにthis.request
設定しようとしました(私はそれがクラスだと思っていましたが、それはうまくいきませんでした)。resolveStrategy
delegate
MyBuilder
これがインスタンス化されているとき、 (クラスの変数を初期化する)mockBuilder
のデフォルトコンストラクターを呼び出していることを知っているので、どこかで変数が利用可能であると想像しますが、それを見つけるのに苦労しました。MyBuilder
request
request