在Grails中使用元类模拟动作

在Grails中使用元类模拟动作,grails,service,mocking,action,Grails,Service,Mocking,Action,我试图模拟控制器的动作概述,但它不起作用 我试过这样做: MyController.metaClass.overview = { -> println "MOCKED OVERVIEW" render(view:"overview", model) } MyController.metaClass.demand.overview = { -> println "MOCKED OVERVIEW" render(v

我试图模拟控制器的动作概述,但它不起作用

我试过这样做:

MyController.metaClass.overview = { ->
        println "MOCKED OVERVIEW"
        render(view:"overview", model)
    }

MyController.metaClass.demand.overview = { ->
        println "MOCKED OVERVIEW"
        render(view:"overview", model)
    }

MyController.metaClass.static.overview = { ->
        println "MOCKED OVERVIEW"
        render(view:"overview", model)
    }
这一切都不起作用

但是我使用了.metaClass来模拟一些服务,它成功了

为什么这个动作不起作用


打印状态从未显示

在Grails的引导过程中,操作需要在那里,以便生成URL和所有Springbean。在应用程序初始化之后,您无法覆盖它(这么简单)


无论如何,你不需要这样做——行动应该很简单。任何可测试的逻辑都应该是可测试的。

为什么要这样做?为什么不照上面说的做呢?我只是好奇…我试着去模仿de action,因为模仿服务并没有达到我期望的效果。但现在我发现这是一个错误。我只是嘲笑了action使用的服务,没有更多。行动应该是正确的。