Features of JBehave

JBehave is a framework for Behaviour-Driven Development (BDD).

Features of JBehave include:

  • Pure Java implementation, which plays well with Java-based enterprises or when interfacing to any environment that exposes a Java API.
  • Users can specify and run text-based user stories, which allows "out-in" development.
  • User stories can be written in JBehave syntax or Gherkin syntax.
  • User stories can be specified as classpath resources or external URL-based resources.
  • User stories can be executed concurrently, specifying the number of concurrent threads.
  • User stories can be documented via generic user-defined meta information that allows easy story filtering and organisation into story maps.
  • Annotation-based binding of textual steps to Java methods, with auto-conversion of string arguments to any parameter type (including generic types) via custom parameter converters.
  • Annotation-based configuration and Steps class specifications
  • Dependency Injection support allowing both configuration and Steps instances composed via your favourite container (Guice, Needle, PicoContainer, Spring, Weld).
  • Groovy scripting supported for writing configuration and Steps instances
  • Extensible story reporting: outputs stories executed in different human-readable file-based formats (HTML, TXT, XML). Fully style-able view.
  • Story cross reference report format in JSON and XML, consumable by external applications.
  • Auto-generation of pending steps so the build is not broken by a missing step, but has option to configure breaking build for pending steps.
  • Pluggable step prioritising strategy. Strategies bundled in core include: by priority field and by Levenshtein Distance.
  • Localisation of user stories, allowing them to be written in any language.
  • IDE integration: stories can be run as JUnit tests or other annotation-based unit test frameworks, providing easy integration with your favourite IDE.
  • Maven integration: allows stories to be run via Maven plugin at given build phase

Want to learn more?

The Getting Started page will get you up and running in no time.