Cucumber

Useful Regular Expressions

Original document is found here

Use flexible pluralization

Add a ? immediately following the pluralized word:

Then /^the users? should receive an email$/ do# ...end

The ? specifies that you’re looking for zero or more of the proceeding character. So the above example will capture both user and users.

Use non-capturing groups to help steps read naturally

You can create non-capturing groups by adding a ?: to the beginning of a otherwise normal group (e.g. (?:some text) rather than (some text)). This is treated exactly like a normal group except that the result will is not captured and thus not passed as an argument to your step definition. Here are two common examples:

And /^once the files? (?:have|has) finished processing$/ do
# ...
end
When /^(?:I|they) create a profile$/ do
# ...
end

Debugging

Pausing

Original Link: ItShouldBeUseful

One of the best ways to do debugging in Cucumber is to pause one every step.

Add a hooks.rb file to the /features/support folder

Add the following code to the hooks.rb file

AfterStep('@pause') do
  print "Press Return to continue..."
  STDIN.getc
end

Add @pause to the scenario you want to walk through

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.