JBehave и Cucumber - это совершенно разные фреймворки, хотя и предназначенные для одной и той же цели: приемочные испытания.Они основаны на рассказах (JBehave) или особенностях (огурец).Особенность - это набор историй, выраженных с точки зрения конкретного участника проекта.В своих тестах вы обращаетесь к историям, как правило, с помощью сопоставления регулярных выражений.
JBehave - это чистый Java-фреймворк, тогда как Cucumber основан на Ruby.Оба очень зрелые рамки.Вы можете использовать Cucumber из Java с помощью плагина Cuke4Duke Maven от Maven , но все еще существует несоответствие языка, поскольку он продолжает использовать Ruby для внутреннего использования, и вам потребуется установить этот язык и его инфраструктуру (так называемый 'gems ') на машине, которая запускает ваши тесты.Это может быть хрупким, а несовпадение языков усложняет как отладку, так и снижает производительность ваших тестов.В настоящее время существует чистая Java-реализация Cucumber, которая называется Cucumber-JVM .По состоянию на декабрь 2011 года он еще не выпущен, но отлично подходит для использования (редактирование: версия 1.0.0 была выпущена 27 марта 2012 года) .Этот новый фреймворк очень похож на JBehave, поскольку оба имеют встроенную поддержку JUnit.
Ниже приводится сравнение Cucumber-JVM и JBehave.
Сходства:
- Поддержка JUnit из коробки
- Чистая Java
- Быстрая
- Простота в использовании
Плюсы / минусы JBehave:
- Pro Очень хорошая документация
- Pro Довольно хорошее HTML-форматирование результатов теста
- Con Поддерживает только истории, не функции
Плюсы / минусы Cucumber-JVM:
- Pro Поддерживает функции
- Con Не поддерживает параллельные тесты JUnit.Однако будет работать с параллельными сборками Maven 3.
- Con Отсутствует документация
- Con Нет хорошего HTML-форматирования результатов теста, кромеСобственное форматирование JUnit (редактирование: Cucumber-JVM теперь поддерживает вывод HTML)
Если вы работаете с Java-проектом, я бы порекомендовал либо JBehave (если выищите отличную документацию) или Cucumber-JVM (если для вас важна поддержка функций или историй).
Я попробовал обе платформы и выбрал Cucumber-JVM.