BDD-фреймворки для Java

Любой из основных языков программирования имеет BDD-фреймворки автоматизации, а некоторые даже и не один. В этой заметке мы рассмотрим, что чаще всего используется при автоматизации на Java.

В первую очередь, стоит сказать, что большая часть существующих сегодня BDD-фреймворков представляет собой просто разные версии Cucumber. Кроме того, это могут быть: — производные от фреймворка JBehave, которые написаны в стиле его создателя (Dan North); — non-Gherkin спек-раннеры.

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

Что у нас есть для Java?

Говоря о фреймворках автоматизации для Java и JVM-языков, стоит упомянуть два основных конкурента:

Cucumber-JVM; • JBehave.

Cucumber-JVM является официальной версией Cucumber для языка программирования Java и прочих JVM-языков, таких как Groovy, Scala, Clojure и пр. Cucumber-JVM полностью совместим с Gherkin и позволяет генерировать красивые отчеты. Кроме того, драйвер Cucumber-JVM можно кастомизировать.

JBehave — один из первых и самых распространенных BDD-фреймворков на современном рынке. Он разработан Деном Нортом, которого иногда называют отцом BDD. Правда, в JBehave нет ключевых особенностей Gherkin, таких как backgrounds, tags и doc strings. Вдобавок к этому, это первое решение на чистой Java, которое существовало еще до появления Cucumber-JVM.

Оба вышеописанных фреймворка используются довольно широко. Радует, что для них предусмотрены плагины в большинстве IDE, а установка возможна посредством Maven-пакетов.

Однако для языка Java есть и другие BDD-фреймворки: — JGiven. Применяет fluent API при написании сценариев, причем красивые HTML-отчеты выводят сценарии совместно с результатами. Кроме того, радует лаконичный синтаксис; — Spock и JDave. Это уже spec-фреймворки, правда, JDave в течение последних лет не развивается; — Scalatest. Предназначен для Scala и тоже основан на spec-компонентах.

Есть решение для Java и у Concordion.

По материалам https://automationpanda.com/2017/02/04/bdd-101-frameworks/.