我正在尝试模拟Controller的概述 Action ,但是它不起作用。

我尝试过这种方式:

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来模拟某些服务,并且它起作用了。

为什么执行此操作不起作用?

从不显示println语句。

最佳答案

在Grails的引导过程中,必须有操作-为了生成URL和所有Spring Bean。初始化应用程序后,您不能覆盖它(那么简单)。

无论如何,您根本不需要- Action 应该很简单。任何可测试的逻辑都应可单独测试。

关于grails - 在Grails中使用metaClass模拟 Action ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6817473/

10-10 09:10