The function passed to defineSupportCode
is called with an object as the first argument that exposes the following methods:
Define a new parameter type and optionally convert an output parameter into something else.
name
: string used to refer to this type in cucumber expressionsregexp
: A regular expression (or array of regular expressions) that match the parametertransformer
: 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 value ofthis
is the current world, so the function can delegate to world functions. World delegation does not work with arrow functions.useForSnippets
: Defaults totrue
. That means this parameter type will be used to generate snippets for undefined steps. If theregexp
frequently matches text you don't intend to be used as arguments, disable its use for snippets withfalse
.preferForRegexpMatch
: Defaults tofalse
. Set to true if you use regular expressions and you want this parameter type'sregexp
to take precedence over others during a match.
The built in parameter types are
int
float
string
- contained in single or double quotes
- the transformer removes the quotes
word
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 an object of the form
{sourceLocation: {line, uri}, result: {duration, status}, pickle}
- The pickle object comes from the gherkin library. See
testdata/good/*.pickles.ndjson
for examples of its structure.
- The pickle object comes from the gherkin library. See
- When using the asynchronous callback interface, have one final argument for the callback function.
- The first argument will be an object of the form
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 after all scenarios have completed.
options
: An object with the following keys:timeout
: A hook-specific timeout, to override the default timeout.
fn
: A function, defined as follows:- When using the asynchronous callback interface, have one argument for the callback function.
Multiple AfterAll
hooks are executed in the reverse order that they are defined.
Defines a hook which is run before each scenario. Same interface as After
except the first argument passed to fn
will not have the result
property.
Multiple Before
hooks are executed in the order that they are defined.
Defines a hook which is run before all scenarios. Same interface as AfterAll
.
Multiple BeforeAll
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.wrapperOptions
: step-specific options that are passed to the definition function wrapper
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
.
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. options
is the step specific wrapperOptions
and may be undefined.
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
.