もっと一般的な質問があります。Spock を使用する場合、Grails 2.x でのモックにはどのフレームワークまたは実装を使用する必要がありますか?
私はたくさんのモッキング スタイルを知っています。Groovy metaClass、Grails mockFor()、Groovy Mock()、Groovy クロージャー スタイルなどを活用します。それぞれに長所と短所があります。しかし、私が理解していないのは、いくつかのモッキングスタイルが特定の状況で機能することです.
現在、サービスメソッドのモックの同様の実装が 2 つあります。
これは機能します:
@TestFor(MyController)
@Mock([MyDevice])
class MyControllerSpec extends ControllerSpec {
void "test st."() {
def myService = mockFor(MyService)
myService.demand.myMethod() { def st ->
return "test"
}
controller.myService = myService.createMock()
}
}
ただし、この実装は機能しません。
@TestFor(MyController)
@Mock([MyDevice])
class MyControllerSpec extends ControllerSpec {
void "test st."() {
def yourService = mockFor(YourService)
yourService.demand.yourMethod() { def st ->
return "test"
}
controller.yourService = yourService.createMock()
}
}
サービスの実装とコントローラーからの呼び出しは非常に似ています。では、Grails でのモックのベスト プラクティスは何でしょうか? または、Grails 用の良いモック フレームワークがあり、モックの方法を理解する時間を節約できますか?
アドバイスをありがとう!:-)
マテオ