了解遗留的grails代码?

时间:2016-10-02 07:08:06

标签: unit-testing grails

以下是grails中控制器单元测试类的setUp方法中的一大块代码。我试图了解以下设置代码的目的。该应用程序有一个TimeService,负责执行时间操作。我感谢任何帮助!

def customPropertyEditor = new CustomPropertyEditorRegistrar(timeService: new TimeService())

def map = (Map<String, PropertyEditorRegistrar>) servletContext.getAttribute(GrailsDataBinder.PROPERTY_EDITOR_REGISTRARS)
        if (!map) servletContext.setAttribute(GrailsDataBinder.PROPERTY_EDITOR_REGISTRARS, [customPropertyEditor: customPropertyEditor])
        else map.put('customPropertyEditor', customPropertyEditor)

2 个答案:

答案 0 :(得分:1)

创建此customPropertyEditor

的TimeService对象
def customPropertyEditor = new CustomPropertyEditorRegistrar(timeService: new TimeService())

制作servletContext.getAttribute(GrailsDataBinder.PROPERTY_EDITOR_REGISTRARS

之外的地图
def map = (Map<String, PropertyEditorRegistrar>) servletContext.getAttribute(GrailsDataBinder.PROPERTY_EDITOR_REGISTRARS)

if (!map) =如果没有找到地图=由于没有结果而在null中

然后将servletContext.setAttribute(GrailsDataBinder.PROPERTY_EDITOR_REGISTRARS设置为顶部customPropertyEditor

的对象
servletContext.setAttribute(GrailsDataBinder.PROPERTY_EDITOR_REGISTRARS, [customPropertyEditor: customPropertyEditor])

如果地图中放置了地图customPropertyEditor此值

    else map.put('customPropertyEditor', customPropertyEditor)

至于GrailsDataBinder正在做什么Servlet Attribute在代码库中搜索它以查看其他内容正在进行交互

答案 1 :(得分:0)

好吧我发现这段代码负责制作它以便日期能很好地结合。显然,没有干净的方法来绑定grails 2.2中的日期。