2013-02-25 4 views
3

Есть ли у кого-нибудь какие-либо рекомендации по модульной проверке экземпляра Symfony2 CompilerPassInterface::process()?Компилятор для тестирования модулей Symfony2

В частности, те, которые я хочу проверить, обычно имеют дело с помеченными элементами, добавляя вызовы методов к службе «менеджер».

ответ

5

Если вы хотите протестировать его изолированно, вам придется издеваться над ContainerBuilder и высмеять любое его определение.

Это обычно довольно раздражает. Поэтому я хотел бы вместо этого написать интеграционный тест. И на самом деле, это то, что делают большинство тестов на компиляторе для ядра symfony.

Вы бы:

  • Создать экземпляр ContainerBuilder
  • Регистрация некоторые заглушек услуги
  • Создать компилятор Пропустите
  • вызов $pass->process($container);
  • утверждают, что передача сделал свое дело правильно

Для примера см. RemoveUnusedDefinitionsPassTest.

+0

Отлично, спасибо. Я думаю, что тестирование его в настоящей изоляции было бы смехотворно излишним, поэтому интеграционное тестирование идеально. – samanime

Смежные вопросы