動的にスキャフォールドされたコントローラーの統合テストでサービスをモックしようとしています。テストからサービスのコントローラープロパティにアクセスできないことを示すエラーが表示されます。
動的にスキャフォールドされたコントローラーは単体テストではまったくテストできないようです。そのため、統合テストを使用しています。アプリでエラー処理をテストするためにサービスをモックしたいと思います。これはGrails2.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()
}
}