相关疑难解决方法(0)

使用Spock进行Grails测试 - 选择哪种模拟框架?

我有更普遍的问题.在使用Spock时,我应该在Grails 2.x中使用哪种框架或实现进行模拟?

我知道大量的模拟风格:利用Groovy metaClass,Grails mockFor(),Groovy Mock(),Groovy闭包样式等等.每个都有自己的优点和缺点.但我不明白的是,某些模拟风格在某些我无法确定的场合起作用(即mockFor()适用于某些实现而不适用于其他实现).

目前我有两个类似的服务方法模拟实现.

这个工作:

@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()
}
}
Run Code Online (Sandbox Code Playgroud)

但是,此实现不起作用:

@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()
}
}
Run Code Online (Sandbox Code Playgroud)

服务器实现和从控制器调用是非常相似的.那么在Grails中嘲笑的最佳做法是什么?或者Grails有什么好的模拟框架可以节省我的时间来弄清楚如何模拟?

谢谢你的建议!:-)

圣马特奥

testing grails spock grails-2.0

8
推荐指数
1
解决办法
5023
查看次数

标签 统计

grails ×1

grails-2.0 ×1

spock ×1

testing ×1