Writing the scenario
Cucumber is a popular BDD test automation tool. Cucumber-JVM is the Java implementation of Cucumber. In Cucumber, you express acceptance criteria in a natural, human-readable form. In Cucumber, scenarios are stored in Feature Files, which contains an overall description of a feature as well as a number of scenarios. For example there is feature file called search_by_keyword.feature
, and looks something like this:
Feature: Searching by keyword In order to find items that I would like to purchase As a potential buyer I want to be able to search for items containing certain words Scenario: Should list items related to a specified keyword Given I want to buy a wool scarf When I search for items containing 'wool' Then I should only see items related to ‘wool’
Step definitions
In Cucumber, each line of the Gherkin scenario maps to a method in a Java class, known as a Step Definition. These use annotations like @Given
, @When
and @Then
, that match lines in the scenario to Java methods. You define simple expressions to indicate parameters that will be passed into the methods:
public class SearchByKeywordStepDefinitions { @Steps BuyerSteps buyer; @Given("I want to buy (.*)") public void buyerWantsToBuy(String article) { buyer.opens_etsy_home_page(); } @When("I search for items containing '(.*)'") public void searchByKeyword(String keyword) { buyer.searches_for_items_containing(keyword); } @Then("I should only see items related to '(.*)'") public void resultsForACategoryAndKeywordInARegion(String keyword) { buyer.should_see_items_related_to(keyword); } }
“BDD Test Automation with Cucumber-JVM” Tech Bite was brought to you by Medžida Mustafić, Junior Test Engineer at Atlantbh.
Tech Bites are tips, tricks, snippets or explanations about various programming technologies and paradigms, which can help engineers with their everyday job.