我已经定义了一个mixin,我想将它应用于我的应用程序中的所有对象,所以我认为在Object
类中定义它是最好的。为了从一开始就应用mixin,我考虑通过BootStrap.groovy
进行设置。但是,这似乎并不有效,因为当我尝试从单元测试的上下文中的任何对象调用mixin中定义的方法时,我得到MissingPropertyException
。
有人能说清楚这个吗?
以下是一个示例:
class MyMixin {
def sayHello() {
println "Hello!"
}
}
BootStrap.groovy
看起来像这样:
def init = { servletContext ->
Object.class.mixin(MyMixin)
}
def destroy = {}
答案 0 :(得分:0)
你在那里的代码看起来有效,应该有效。我不知道你的意思是“我尝试从测试对象中调用mixin中定义的方法”,但我怀疑你要么错误地调用方法,要么在你的BootStrap没有的上下文中执行该代码已经跑了。
修改强>
BootStrap不是(并且不应该)为您的单元测试执行。我认为这就是问题。