2012-02-14 22 views
0

で同時に「どこで」ブロックとヘルパーメソッドを使用することができます。は、私は基本的にこのようになります仕様を持っているスポック

def "my example specification"(){ 
given:"some mocked object which depends on a object created in the where clause" 
     def display = mockDisplay() 

and:"a activityt" 
     def activity = new ConfigActivity(display) 
when: 
     activity.doStuff() 
then: 
     1 * display.select() 

where: 
     dependency << new Dependency() 
} 


private mockDisplay() { 
     def display = Mock(ConfigActivity.Display) 
     display.addDependency(dependency) 
     return display 
} 

私は「mockDisplay()」メソッドは外であることを理解スコープはwhere句からです。しかし、いくつかの仕様はボイラープレートのコードで混乱する傾向があります(この単純化されたオフコースではありません)ので、私は「与えられた」ステートメントを再利用するために何か方法が必要です。そうすることでSpockを本当に使いたいです。 "節も同様です。

これは実行可能ですか?あるいは、この問題について別の方法がありますか?

答えて

1

ヘルパーメソッドからデータ変数にアクセスする魔法の方法はありませんが、メソッドパラメータとして渡すことができます。

+0

private mockDisplay()メソッドのシグネチャをprivate mockDisplay(依存関係)に変更するだけでうまくいくでしょうか?私はそれを試してみましょう.. – Smithimage

+0

メソッド宣言と呼び出し元の両方を適応させる必要があります。 –

+0

うん、thats右、コンパイラーの種類のhelpt me with that :) – Smithimage

関連する問題