2012-01-13 5 views
1

私はクラスFooを持っていて、方法はBar makeBar(String id)です。あなたが推測できる通り、makeBarは、idというIDを持つ新しいBarオブジェクトを作成します。 Barにはidのゲッターがあります。Spock:実行時に疑似オブジェクトを作成する

私のテストの目的のために、私は模擬する必要がありますFoo。私は模倣したmakeBarメソッドを参考にして、ゲッターが正しいidmakeBarに与えられたもの)を返すような模造のBarオブジェクトを作成したいと思います。


だから、明確にするために、私は

foo.makeBar(someId) 

bar.getId() == someID 

が方法はありbarいる嘲笑Barオブジェクトを返すようFooの嘲笑インスタンスfooを作成したいですSpockでこれを行うには、またはすべてをスタブする必要がありますか?

答えて

4

はい、モックに他のモックを返させることは可能です。私はここで完了し、実行可能なコードを公開した

Foo foo = Mock() 

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

http://webconsole.spockframework.org/?id=40001これはトリックを行います。

+0

ありがとうございます!これは私にスタブの100 +ラインを節約する:) –

関連する問題