Grails 2.2.2: Тестирование перехватчиков в ControllerTests с помощью GMock

Когда наша кодовая база все еще находилась в Grails 2.1.4, этот модульный тест для наших перехватчиков работал с полным охватом:

@Before
void setUp() {
   gmc = new GMockController()
   apiProducts = gmc.mock()

   api.products.returns(apiProducts).stub()

   controller.api = api
}

void testBeforeInterceptor() {
   // Arrange
   setUp()
   def ctrl = gmc.mock(controller)
   params.id = 1
   ctrl.actionName.returns('view')
   apiProducts.get(params.id)

   // Act
   gmc.play {
       controller.beforeInterceptor()
   }
}

После перехода на Grails 2.2.2 кажется, что это не покрывает тест, как это было в версии 2.1.4. Ошибка «Неожиданный вызов метода» вызывается, так как он не проходит через перехватчики, как это было в 2.1.4.

Были ли изменения в том, как тестируются перехватчики?

Я искал вокруг, и кажется, что ни у кого нет ответа на этот вопрос. Документация по тестированию перехватчиков скудна. Любые идеи?


person Ace Subido    schedule 25.06.2013    source источник


Ответы (1)


Grails не вызывает перехватчики или фильтры сервлетов при вызове действий во время интеграционного тестирования. Перехватчики и фильтры следует тестировать изолированно, при необходимости используя функциональное тестирование.

(Непроверено) Я не уверен, применимо ли это здесь для GMock. Но в документе интеграционные тесты указано иное.

person dmahapatro    schedule 26.06.2013
comment
Я это тоже рассматривал, но спасибо, что подняли тему :) - person Ace Subido; 26.06.2013