Grails - 通过BootStrap将运行时mixin添加到Object类不起作用

时间:2014-06-13 11:46:59

标签: grails groovy

我已经定义了一个mixin,我想将它应用于我的应用程序中的所有对象,所以我认为在Object类中定义它是最好的。为了从一开始就应用mixin,我考虑通过BootStrap.groovy进行设置。但是,这似乎并不有效,因为当我尝试从单元测试的上下文中的任何对象调用mixin中定义的方法时,我得到MissingPropertyException

有人能说清楚这个吗?

以下是一个示例:

class MyMixin {

    def sayHello() {
        println "Hello!"
    }

}

BootStrap.groovy看起来像这样:

def init = { servletContext ->
    Object.class.mixin(MyMixin)
}

def destroy = {}

1 个答案:

答案 0 :(得分:0)

你在那里的代码看起来有效,应该有效。我不知道你的意思是“我尝试从测试对象中调用mixin中定义的方法”,但我怀疑你要么错误地调用方法,要么在你的BootStrap没有的上下文中执行该代码已经跑了。

修改

BootStrap不是(并且不应该)为您的单元测试执行。我认为这就是问题。