我正在将应用程序从 Grails 2.4.4 升级到 Grails 3.0.9,但我找不到任何有关如何在 Grails 3 中执行 mockFor、createMock 和需求的信息。
我曾经做过这样的事情:
fooService = mockFor(FooService)
controller.fooService = fooService.createMock()
fooService.demand.barMethod() { a,b ->
}
但看起来“mockFor”已经消失了,即使从文档中也是如此。Grails 3 的方法是什么?
更新:
我不想将使用 Grails 'mockFor' 样式编写的数千个测试重写为 Spock 交互样式,所以我想出了这个解决方案:
- 用新的 MockFor() 替换 mockFor()
- 用 proxyInstance() 替换 createMock()
- 将对 fooBean.fooService = fooService.proxyInstance() 的调用移至需求之后
没有进一步的更改,这在 Grails 3 中“正常工作”。