an example factory which will take the stored results and make them the example result
we force the specification to be isolated if it's not sequential or already isolated.
we force the specification to be isolated if it's not sequential or already isolated. this is important because when an example runs, its results are being stored into a shared list
modify the fragments, using the current environment
modify the fragments, using the current environment
modify the fragments
modify the fragments
a Result having its location as part of its message
create a new Context with the list of captured results.
create a new Context with the list of captured results.
This method could be overridden to filter the captured results and remove the skipped results for example
This trait can be mixed-in a specification to allow examples to have all of their expectations being evaluated (unless the example body throws an exception of course).
All the results are collected into a list, provided by the StoredExpectations trait. These results form then the body of the each example (decorated by a special ExampleFactory) so that each example returns a Result which is the summary of all the individual issues.
It must be noted that this trait relies on a mutable list to collect the results as they are created in the example body. Because of this restriction, a Specification using that trait can either run sequentially or isolated.
If the specification is neither sequential or isolated, we force it to be isolated by default.