This has frequently been caused by the use of ES6 arrow functions.
If you are using the world instance (which is bound to this
) in a step definition, then you cannot use ES6 arrow functions for step definitions or hooks because they bind this
to the current context which prevents the world instance from being injected.
Why do my definition patterns need to be globally unique instead of unique only within Given
, When
, Then
?
To encourage a ubiquitous, non-ambiguous domain language.
Using the same language to mean different things is basically the definition of ambiguous.
If you have similar Given
and Then
patterns, try adding the word “should” to Then
patterns.