2011-09-29 99 views
1

我想使用此处描述的技术:Grails bind request parameters to enum 自动将枚举的字符串表示形式绑定到域实例。 该技术工作正常,但我现有的控制器单元测试失败,因为自定义编辑器未在单元测试期间加载。我不愿意为这种数据绑定技术切换到每个控制器的集成测试。如何在使用自定义属性编辑器时测试Grails控制器?

有没有办法来单位当你有一个自定义属性编辑器时测试一个控制器动作?

回答

0

在Grails的2.X,你可以在你的单元测试定义额外豆类,只需使用defineBeans作为您的安装的第一件事:

@TestFor(MyController) 
class MyControllerTests { 

    @Before 
    void setup() { 
    defineBeans { 
     myCustomEditorRegistrar(MyCustomEditorRegistrar) 
    } 
    } 

} 
1

据我所知,spring应用程序上下文不适用于单元测试,因此您的财产注册商和财产编辑将不会被注册。所以自定义属性编辑器不能在单元测试中工作。然而,grails使用GrailsDataBinder - 它是DataBinder的子类。您可能能够执行一些元编程和metaClass的东西,以便在调用bind()时您的自定义属性编辑器被注册并找到。

+0

Grails的2.X ApplicationContext已提供的单元测试通过' GrailsUnitTestMixin'。 –

相关问题