使用自定义属性编辑器时,如何对Grails控制器进行单元测试?

时间:2011-09-29 15:49:39

标签: unit-testing grails propertyeditor

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

当您拥有自定义属性编辑器时,有没有办法让单元测试控制器操作?

2 个答案:

答案 0 :(得分:1)

据我所知,春季申请上下文在单元测试中不可用,因此您的物业注册商和物业编辑将不会被注册。所以自定义属性编辑器不能在单元测试中工作。但是,grails使用GrailsDataBinder - 它是DataBinder的子类。您可能可以执行一些元编程和metaClass,以便在调用bind()时注册并找到自定义属性编辑器。

答案 1 :(得分:0)

在Grails 2.x中,您可以在单元测试中定义额外的bean,只需使用defineBeans作为设置中的第一件事:

@TestFor(MyController)
class MyControllerTests {

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

}