Палец вверх 1
Перевод
Перевод

Как выполнить модульное тестирование контроллера Grails при использовании редактора пользовательских свойств?

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

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

grails unit-testing propertyeditor
задан Shawn Flahave 29 сент. 2011 г., 19:49:38
источник

2 ответа

Решение 0
Перевод
Перевод

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

@TestFor(MyController)
class MyControllerTests {

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

}
ответ дан Sérgio Michels 22 мар. 2013 г., 18:00:53
источник
Палец вверх 1
Перевод
Перевод

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

ответ дан Sudhir N 5 февр. 2012 г., 11:57:54
источник