step | R Documentation |
Provide a description that matches steps in feature files and the implementation function that will be run.
given(description, implementation)
when(description, implementation)
then(description, implementation)
description |
A description of the step. Cucumber executes each step in a scenario one at a time, in the sequence you’ve written them in. When Cucumber tries to execute a step, it looks for a matching step definition to execute. Keywords are not taken into account when looking for a step definition.
This means you cannot have a Cucumber considers the following steps duplicates: Given there is money in my account Then there is money in my account This might seem like a limitation, but it forces you to come up with a less ambiguous, more clear domain language: Given my account has a balance of £430 Then my account should have a balance of £430 To pass arguments, description can contain placeholders in curly braces. To match: Given my account has a balance of £430 use: given("my account has a balance of £{float}", function(balance, context) { }) If no step definition is found an error will be thrown. If multiple steps definitions for a single step are found an error will be thrown. |
implementation |
A function that will be run during test execution. The implementation function must always have the last parameter named If a step has a description If a table or a docstring is defined for a step, it will be passed as an argument after placeholder parameters
and before |
Placeholders in expressions are replaced with regular expressions that match values in the feature file. Regular expressions are generated during runtime based on defined parameter types.
The expression "I have {int} cucumbers in my basket"
will be converted to
"I have [+-]?(?<![.])[:digit:]+(?![.]) cucumbers in my basket"
. The extracted value of {int}
will be passed to the implementation function after being transformed with as.integer
.
To define your own parameter types use define_parameter_type
.
A function of class step
, invisibly. Function should be called for side effects.
define_parameter_type()
given("I have {int} cucumbers in my basket", function(n_cucumbers, context) {
context$n_cucumbers <- n_cucumbers
})
given("I have {int} cucumbers in my basket and a table", function(n_cucumbers, table, context) {
context$n_cucumbers <- n_cucumbers
context$table <- table
})
when("I eat {int} cucumbers", function(n_cucumbers, context) {
context$n_cucumbers <- context$n_cucumbers - n_cucumbers
})
then("I should have {int} cucumbers in my basket", function(n_cucumbers, context) {
expect_equal(context$n_cucumbers, n_cucumbers)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.