There are 3 symbolic operators in this library.
||Composes assertions (
||Adds assertions to
||Composes assertions into invariants.|
||Composes actions so that they run sequentially.|
||Adds pre-conditions to actions.|
||Adds post-conditions to actions.|
In all cases above, you can see that the
> indicates the order of execution, left-to-right.
Operators can also be written backwards. These are equivalent:
As above, the
< chars indicate execution flow.
In this example, each term will be executed in the order it appears:
preCond1 +> action1 +> postCond1a +> postCond1b >> action2 +> postCond2
Transformer is a means of changing any or all of the types in a test constituent.
This allows different test (or test components) to be transformed to have matching types
where they can be composed normally. This allows entire tests to be embedded in others.
To create a transformer, start with
.transformer on your
then call as many of its mapping methods as needed to specify how to change types.
Once done, you can either use the transformer directly to transform test constituents,
or you can make it
implicit and call
.lift on test constituents such as
Plans and Tests
Invariants by using one of:
Invariants to an existing
Plan by using one of:
Plan into an
Plan into a
Test (and vice-versa similarly) like this: