externalabstractInteraction
Hierarchy
Index
Constructors
Methods
Constructors
externalconstructor
Parameters
externaldescription: Answerable<string>
externallocation: FileSystemLocation = ...
Returns Interaction
Methods
staticexternalwhere
Parameters
externaldescription: Answerable<string>
Description to be used when reporting this interaction, for example
#actor clears local storage
. Note that#actor
will be replaced with the name of the actor performing this interaction.externalinteraction: (actor: UsesAbilities & AnswersQuestions & CollectsArtifacts) => void | Promise<void>
Returns Interaction
externalinstantiationLocation
Returns the location where this
Activity
was instantiated.Returns FileSystemLocation
externalabstractperformAs
Instructs the provided
Actor
to perform thisInteraction
.Learn more
Parameters
externalactor: UsesAbilities & AnswersQuestions
Returns Promise<void>
externaldescribedBy
Resolves the description of this object in the context of the provided
actor
.Parameters
externalactor: AnswersQuestions & UsesAbilities & { name: string }
Returns Promise<string>
externaltoString
Returns a human-readable description of this object.
Returns string
Interactions are low-level activities that encapsulate a handful of instructions for an actor on how to use their abilities to perform an individual interaction with the given interface of the system under test.
Because of their low-level nature, interactions are named using the vocabulary of the solution domain, and represent an individual interaction with the given interface, e.g.
Click
,Enter
, orSend
.Interactions follow the Single Responsibility Principle which means that they do one thing and one thing only. If you're considering implementing an "interaction" that performs more than one logical activity, e.g. checks if the button is visible and then clicks on it if is, consider using separate interactions for separate responsibilities and then composing them using a task.
Interactions are the core building block of the Screenplay Pattern, along with actors, abilities, questions, and tasks.
Learn more about:
Actor
Writing a custom interaction
Serenity/JS modules ship with dozens of interactions to help you compose your test scenarios. However, if you need to interact with a non-standard interface, or want to create a flavour of a given interaction that behaves slightly differently than the built-in version, you can easily create your own implementations using the
Interaction.where
factory method.Using a custom interaction