Cucumber — DRY up your Steps

Way 1:

Feature File:

Scenario: Google
Given I am in Google Search page
When the user clicks on the next button
When clicks next
When selects Next
Then the title should be “Raveendran – Watir”

In your ruby file,

Given /^I am in Google Search page$/ do
puts “I am in google page”
end

When /^(?:the? )?(?:user? )?(?:clicks|selects)?(?: on? )?(?:the?)?(?: next?)?(?: button?)?$/i do
puts “The same script working for 3 step files 🙂 ”
end

Then /^the title should be (.*)$/ do |arg1|
#Code for verification
puts “It works”
end

Solution :

Only 1 step is enough Instead of 3 steps if it targets same script.

Way 2:

Feature File:

Scenario: Google
Given I have verified the result page
When nothing changed
Then the title should be “Raveendran – Watir”

In Your Ruby file,

Given /^I have verified the result page$/ do
Given “I am in Google Search page”
And “the user clicks on the next button”
And “clicks next”
And “selects Next”
And “the title should be “Raveendran – Watir””
end

When /^nothing changed$/ do
#Some Code
end

Then /^the title should be “([^\”]*)”$/ do |arg1|
#Some Code
end

cuRF

cuRF – It will create Cucumber feature files with different set of test data.

Installation:

Usage:

  • Create multiple Cucumber Feature files with different set of TEST DATA.

Why it is needed?

  • Cucumber currently supports Keyword driven and TABLE structured data driven flows. The table structure data driven works perfectly within Scenario’s. But it doesn’t pass anything to ANTOHER scenario’s in same feature file.
  • To increase the data driven approach in cucumber, we are creating more feature files depends upon TEST data from user.

Steps for Demo:

  • Open main_feature.feature file
    • It has 2 scenario’s
    • Instead of TEST DATA it has the variable name such as,
      • number1
      • number2
      • total1
      • total2
  • These all variables should be unique
  • Open data.xls file
    • Here you need provide all headers. Header name is nothing but all the variable names without the symbol “@”
    • Keep the method name created? At last column.
    • Create the rows with TEST DATA
    • Save and Close the Excel file
    • Run the batch file named as “run.bat”
      • Open the folder named as “result_features”
        • Lot of new feature files created automatically with the different set of test data.