cucumbergherkincucumber-javacucumber-junit

How to write numbers in Cucumber scenarios


I want to handle numeric parameters in the Cucumber step definitions. Please let me know how I can do this.

Scenario Outline: Enter an invalid URL
  Given the context "Invalid URL" is open on "Market" 
  When user is on the error 404 page
  Then page not found message is displayed

However, I have observed that 404 is taken as a parameter.


Solution

  • Sure, you just have to handle it as a regular expression (regex) in your step definitions. Your step definition could read as following:

    @When("^When user is on the error \"(\\d+)\" page$")
    public void When_user_is_on_the_error_page(int errorNum) throws Throwable {
    
    ...
    
    }
    

    That'll handle 1 or more digits. The \d represents a digit and the + sign represents "1 or more".

    I personally like wrapping my parameters in double quotes ("") because then the IDE understands it's a parameter and can help you out with autocomplete, etc.

    If you want to restrict it to more specific numbers (say only three digits) you can refine your regex to something like [\d]{3}. Oracle have lessons on Java regex here.