The function passed to defineSupportCode
is called with an object as the first argument that exposes the following methods:
Add a new transform to convert a capture group into something else.
regexp
: A regular expression (or array of regular expressions) that match the parametertypeName
: string used to refer to this type in cucumber expressionstransformer
: An optional function which transforms the captured argument from a string into what is passed to the step definition. If no transform function is specified, the captured argument is left as a string. The function can be synchronous or return aPromise
of the transformed value.
The built in transforms are:
// Float
{
regexp: /-?\d*\.?\d+/,
transformer: parseFloat,
typeName: 'float'
}
// Integer
{
regexp: /-?\d+/,
transformer: parseInt,
typeName: 'int'
}
// String in double quotes
{
regexp: /"[^"]+"/,
transformer: JSON.parse,
typeName: 'stringInDoubleQuotes'
}
Defines a hook which is run after each scenario.
options
: An object with the following keys:tags
: string tag expression used to apply this hook to only specific scenarios. See cucumber-tag-expressions for more informationtimeout
: A hook-specific timeout, to override the default timeout.
fn
: A function, defined as follows:- The first argument will be a ScenarioResult
- When using the asynchronous callback interface, have one final argument for the callback function.
options
can also be a string as a shorthand for specifying tags
.
Multiple After
hooks are executed in the reverse order that they are defined.
Defines a hook which is run before each scenario. Same interface as After
.
Multiple Before
hooks are executed in the order that they are defined.
Defines a step.
Aliases: Given
, When
, Then
.
pattern
: A regex or string pattern to match against a gherkin step.options
: An object with the following keys:timeout
: A step-specific timeout, to override the default timeout.
fn
: A function, which should be defined as follows:- Should have one argument for each capture in the regular expression.
- May have an additional argument if the gherkin step has a docstring or data table.
- When using the asynchronous callback interface, have one final argument for the callback function.
Alias of defineStep
.
event
: One of the supported event names listed here.options
: An object with the following keys:timeout
: A step-specific timeout, to override the default timeout.
fn
: A function, defined as follows:- The first argument is the object as defined here.
- When using the asynchronous callback interface, have one final argument for the callback function.
Set the default timeout for asynchronous steps. Defaults to 5000
milliseconds.
Set a function used to wrap step / hook definitions. When used, the result is wrapped again to ensure it has the same length of the original step / hook definition.
Set a custom world constructor, to override the default world constructor:
function World({attach, parameters}) {
this.attach = attach
this.parameters = parameters
}
attach
- a function hooks / steps can use to add attachmentsparameters
- world parameters passed in through the cli
Note: The World constructor was made strictly synchronous in v0.8.0.
Alias of defineStep
.
Alias of defineStep
.