Как выполнить модульное тестирование контроллера Grails при использовании редактора пользовательских свойств? - PullRequest
1 голос
/ 29 сентября 2011

Я бы хотел использовать описанную здесь технику: Grails привязывает параметры запроса к enum чтобы автоматически связать строковое представление перечисления с экземпляром домена. Техника работает нормально, но мои существующие тестовые модули контроллера не пройдены, потому что пользовательские редакторы не загружаются во время модульного тестирования. Я не хотел бы переходить на интеграционные тесты для каждого контроллера только для этой техники привязки данных.

Есть ли способ unit проверить действие контроллера, когда у вас есть редактор пользовательских свойств?

Ответы [ 2 ]

1 голос
/ 05 февраля 2012

Насколько я знаю, контекст приложения Spring не доступен в модульных тестах, и, следовательно, ваши регистраторы свойств и редакторы свойств не будут зарегистрированы. так что редакторы пользовательских свойств не будут работать в модульных тестах. Тем не менее, Grails использует GrailsDataBinder, который является подклассом DataBinder Возможно, вы сможете выполнять некоторые вещи метапрограммирования и метакласса, чтобы ваш редактор пользовательских свойств регистрировался и находился при вызове bind ().

0 голосов
/ 22 марта 2013

В Grails 2.x вы можете определить свои дополнительные компоненты в своем модульном тесте, просто используйте defineBeans в качестве первой вещи в вашей настройке:

@TestFor(MyController)
class MyControllerTests {

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

}
...