!3 Building higher-level domain languages
It can be convenient to define the actions in a high-level domain language in terms of actions in a lower-level language, such as actions that drive web tests. Rather than writing fixture code to translate the high-level actions, ''defined actions'' can sometimes be used instead.

This means that a fixture, such as ''!-HtmlFixture-!'', can be used for the low-level of web testing, while still maintaining storytests in high-level terms that are business-oriented instead of being based on the UI.
!3 DefinedActions
A defined action is called with appropriate parameters and the body of the defined action is run after parameter substitutions

See .FitLibrary.UserGuide.FitLibraryByExample.DefinedActions for further details.

^CallPasses
>CallPassesWithOldStyle
>CallFails
^NestedCallPasses
>NestedCallFails
>InfiniteCallFails
>CallWithNestedTablePasses
^ExpandedBody
>ShowInBodyIsShownBesideCall
^EmptyBody
^HandlesSubstitutionsInXml
^HandlesXmlArguments

^ReturnsLastValue
>DoesNotReturnLastValue

^DefinedElsewhere
^DefinedElsewhereTwo
^DefinedElsewhereExpanded
^DefinedElsewhereInUnicode
^DefinedInHierarchy
^DefinedInMixedAndRepetitiveHierarchy

^DefinedWithRootLocation

^AbandonInDefinedAction
^AbandonInNestedDefinedAction
^StopOnErrorInDefinedAction

>BasedOnClass

^WrongCall
^BlankParameter
^DuplicatedParameter

^NestedTablesAsArguments

^AnyObjectsAddedToScopeDuringDefinedActionBodyExecutionAreRemovedAgain
