Есть ли способ протестировать приложение Symfony, отличное от PHPUnit?

Во время интервью менеджер проекта задал мне следующий вопрос:

Я вижу в вашем резюме, что вы используете PHPUnit 4 для тестов? Почему бы вам не использовать встроенное тестирование Symfony?

Я ответил:

Что я знаю, так это то, что тестирование приложений Symfony выполняется через PHPUnit, что рекомендуется в документах 2.3 и 2.7. Я не знаю, поставляется ли Symfony3 с компонентом тестирования!

Был ли мой ответ правильным? Спасибо за объяснения.


person Adib Aroui    schedule 26.04.2017    source источник
comment
Похоже, премьер-министр действительно не знает, о чем говорит. Что обычно приходит как часть работы в моем опыте. У Symfony есть некоторые кусочки, которые вы можете построить поверх, например. WebTestCase для интеграции/функционального тестирования, но он все еще используется через PHPUnit iirc.   -  person Jonnix    schedule 26.04.2017
comment
@JonStirling, спасибо за объяснение   -  person Adib Aroui    schedule 29.07.2019


Ответы (2)


Да вы правы. Symfony имеет WebTestCase (расширение KernelTestCase где вы можете найти, что он расширяет PhpUnit) для функционального тестирования. Кроме того, Symfony предоставляет PhpUnitBridge, который содержит полезные материалы для написание PHPUnit-тестов для приложения Symfony, например. чтобы сделать тесты неудачными, которые используют устаревшие компоненты. Оба полагаются на PHPUnit и предоставляют дополнительные возможности поверх «ванильного» phpunit.

Существуют альтернативные инструменты тестирования, такие как phpspec для написания модульных тестов и Behat для тестов более высокого уровня (функциональное и приемочное тестирование), но оба они не используются внутри Symfony и поэтому на самом деле не кажутся быть тем, о чем спрашивали.

person dbrumann    schedule 26.04.2017
comment
Спасибо, сэр, это устранило все недоразумения - person Adib Aroui; 26.04.2017
comment
Рад, что смог помочь и хорошо выглядеть при собеседовании/получении новой работы - person dbrumann; 26.04.2017
comment
Спасибо, сэр, я оценил :) - person Adib Aroui; 27.04.2017

Дополнительная информация к вашему ответу: по моему опыту, WebTestCase также загружает ядро ​​как статический метод во всех тестах. Из-за этого модульное тестирование с помощью этого инструмента не очень хорошо, так как этот тест должен быть быстрым. Они разрабатывают это с помощью контроллеров и действий функционального тестирования, но не требуют запуска HTTP-сервера.

Тогда для:

  • модульное тестирование, встроенный - не лучший вариант
  • функциональное тестирование, это было изначальное намерение, но я думаю, что Behat - лучшее решение
  • системное тестирование - не очень.

Резюме, поэтому я не использую этот инструмент.

person timiTao    schedule 11.05.2017