Как упоминалось ранее, работает имитация Grails с использованием BindDynamicMethod. Это работает для меня на Grails 1.3.5:
import org.codehaus.groovy.grails.web.metaclass.BindDynamicMethod
protected void setUp() {
def mc = controller.class.metaClass
def bind = new BindDynamicMethod()
mc.bindData = { Object target, Object args ->
bind.invoke(delegate, "bindData", [ target, args ] as Object[])
}
mc.bindData = { Object target, Object args, List disallowed ->
bind.invoke(delegate, "bindData", [ target, args, [ exclude: disallowed ]] as Object[])
}
mc.bindData = { Object target, Object args, List disallowed, String filter ->
bind.invoke(delegate, "bindData", [ target, args, [ exclude: disallowed ], filter ] as Object[])
}
mc.bindData = { Object target, Object args, Map includeExclude ->
bind.invoke(delegate, "bindData", [ target, args, includeExclude ] as Object[])
}
mc.bindData = { Object target, Object args, Map includeExclude, String filter ->
bind.invoke(delegate, "bindData", [ target, args, includeExclude, filter ] as Object[])
}
mc.bindData = { Object target, Object args, String filter ->
bind.invoke(delegate, "bindData", [ target, args, filter ] as Object[])
}
}
Это скопировано с org/codehaus/groovy/grails/plugins/web/ControllersGrailsPlugin.groovy
, и поэтому оно поддерживает все формы bindData
.
Надеемся, что ситуация улучшится с предстоящими тестами Grails 1.4 и *. .