1

Fooメソッドを持つクラスがありBar makeBar(String id)ます。ご想像のとおり、idでmakeBar新しいオブジェクトを作成します。のゲッターがあります。BaridBarid

私のテストの目的のために、私はモックする必要がありFooます。モックメソッドで、ゲッターが正しいもの(に与えられたもの)を返すmakeBarモックオブジェクトを作成したいと思います。BaridmakeBar


明確にするために、私はそのようなモックされたインスタンスfooを作成したいと思いますFoo

foo.makeBar(someId)

Barモックオブジェクトbarを返します。

bar.getId() == someID

Spockでこれを行う方法はありますか、それともすべてをスタブする必要がありますか?

4

1 に答える 1

4

はい、モックに他のモックを返してもらうことは可能です。これでうまくいきます:

Foo foo = Mock()

foo.makeBar(_) >> { String id ->
    Bar bar = Mock()
    bar.getId() >> id
    bar
}

完全で実行可能なコードをここに公開しました:http ://webconsole.spockframework.org/?id=40001 。

于 2012-01-13T05:14:16.120 に答える