3

I am looking for Java Behaviour-driven development test frameworks that integrates well with Data-driven development (parametrized values). I started using easyb, but it seems not really data-driven friendly. Looking at the documentation JBehave looks a more consolidated framework, has anyone used one of hose framework with Selenium (Maven project) with CSV or JSON files as feeds.

Cheers,

sebarmeli
  • 17,949
  • 7
  • 35
  • 40
  • Check this post http://stackoverflow.com/questions/1068785/what-are-the-differences-between-bdd-frameworks-for-java – Paul Verest Dec 17 '12 at 04:55

1 Answers1

2

You can use JGiven together with JUnit and the JUnit-DataProvider. You can then write tests like this one:

@Test
@DataProvider( {
    "0, 0, Error: No coffees left",
    "0, 1, Error: No coffees left",
    "1, 0, Error: Insufficient money",
    "0, 5, Error: No coffees left",
    "1, 5, Enjoy your coffee!",
} )
public void correct_messages_are_shown( int coffeesLeft, int numberOfCoins, String message ) {
    given().a_coffee_machine()
        .and().there_are_$_coffees_left_in_the_machine( coffeesLeft );

    when().I_insert_$_one_euro_coins( numberOfCoins )
        .and().I_press_the_coffee_button();

    then().the_message_$_is_shown( message );
}

The full example can be found on GitHub

Disclaimer: I am the author of JGiven

Jan Schaefer
  • 1,882
  • 1
  • 18
  • 23