You can use JGiven with JUnit and JUnit-DataProvider . Then you can write tests like this:
@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 );
}
Full example can be found on GitHub
Disclaimer: I am the author of JGiven
source
share