Cucumber::Helpers
A collection of helpers for cucumber tests we use at blinkbox books.
Installation
Add this line to your application's Gemfile:
gem 'cucumber-helpers'
And then execute:
$ bundle
Or install it yourself as:
$ gem install cucumber-helpers
Usage
Typed object initialisation with Tables
Occasionally you'll want to create an object with specific attributes, or test that the attributes that are present are of a particular data type. In Gherkin there is no defined way to specify the type of a named object, because Gherkin is a business language.
This helper provides a mechanism to define attributes in a business-friendly manner and step helpers to convert them to the key names your code uses.
Examples
Let's say you have the following gherkin:
Given that a user exists with the following attributes:
| attribute | type | value | description |
| First Name | String | Sherlock | The user's first name |
| Last Name | String | Holmes | The user's last name |
| Date of Birth | Date | 1999-12-31 | The user's birth date |
| Address: First Line | String | 221B Baker Street | The first line of the user's address |
| Address: Second Line | String | London | The second line of the user's address |
| Address: Postcode | String | NW1 6XE | The user's postcode |
| Number of Pipes | Number | 12 | The number of pipes the user owns |
And the following step definition:
# TBC
The default attribute mapper will generate a hash (attribute_hash
) that looks like this:
{
"first_name" => "Sherlock",
"last_name" => "Holmes",
"date_of_birth" => #<Date: 1999-12-31 ((2451544j,0s,0n),+0s,2299161j)>,
"address" => {
"first_line" => "221B Baker Street",
"second_line" => "London",
"postcode" => "NW1 6XE"
},
"number_of_pipes" => 12
}
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request