Веди себя как огурец в PHP
Не поймите меня неправильно. Я думаю, что оба проекта фантастичны.
Но как разработчик php и ruby, я задаюсь вопросом, есть ли какие-либо веские причины, помимо возможного языкового барьера, почему следует выбирать Behat вместо Cucumber (с cuke4php) для BDD даже при работе с php или некоторыми фреймворками php.
2 answers
Я разработчик Behat.
Почему я разработал Behat вместо настройки Cucumber:
- Скорость. Не существует простого способа начальной загрузки/запуска PHP из кода Ruby. Это означает, что вам нужно реализовать провода/прокси-серверы и другие вещи, что делает ваши тесты безумно медленными. А более медленные тесты - это не тест, это просто код, который съедает деньги вашего клиента.
- Расширяемость. Существует очень мало разработчиков PHP, которые действительно знают Ruby. Это сложный в использовании инструмент, который многие не понимаю! Все примеры, написанные для Cucumber, являются кодом Ruby, и вы даже не можете посмотреть источники Cucumber, потому что, скажем, вы не знаете Ruby. Это все равно что купить подводную лодку, когда вам просто нужно такси.
С точки зрения функций, Behat и Cucumber почти одинаковы (я много работал, чтобы добиться этого). Но с точки зрения скорости/расширяемости/логики с точки зрения разработчика PHP - это лучше, потому что это быстрый и чистый собственный инструмент PHP. Бехат - это не Огуречный портвейн, как сначала вы можете подумать, что он полностью построен с нуля на PHP 5.3. Behat пытается имитировать Cucumber с его чтением ввода (функции) и форматированием вывода (форматеры), но это не порт Cucumber (в PHP нет синтаксических конструкций Ruby).
Здесь объясняется еще одна причина, по которой вам может понадобиться Behat: https://cucumber.io/blog/2014/09/10/when-cucumbers-go-bad
Если у вас есть проект PHP, вы можете создать контекст для внутреннего тестирования (уровень домена, уровень приложения).