我正在尝试在动态脚手架控制器的集成测试中模拟服务。我收到一条错误消息,表明无法从测试中访问服务的控制器属性。
似乎根本无法使用单元测试来测试动态脚手架控制器,所以我正在使用集成测试。我想模拟该服务以测试我的应用程序中的错误处理。这是 Grails 2.2.0 中的错误还是我做错了?
结果grails test-app
是:
groovy.lang.MissingPropertyException: No such property: myService for class: MyController
例子:
我修改了src/templates/scaffolding/Controller.groovy
:
class ${className}Controller {
MyService myService
def action() {
render myService.serviceMethod()
}
}
动态脚手架MyController.groovy
:
class MyController {
static scaffold = MyDomainClass
}
集成测试MyControllerTests.groovy
:
class MyControllerTests extends GroovyTestCase {
def myController
@Before
void setUp() {
myController = new MyController()
}
void testMock() {
myController.myService = [ serviceMethod : { return "foo" } ] as MyService
controller.action()
}
}