Trait that contains the outcomeOf
method, which executes a passed code block and
transforms the outcome into an Outcome
, using the
same mechanism used by ScalaTest to produce an Outcome
when executing
a test.
For an example of outcomeOf
in action, see the documentation for
class TableFor2
.
- Companion:
- object
Value members
Concrete methods
Executes the supplied code (a by-name parameter) and returns an Outcome
.
Executes the supplied code (a by-name parameter) and returns an Outcome
.
Because Error
s are used to denote serious errors, ScalaTest does not always treat a test that completes abruptly with
an Error
as a test failure, but sometimes as
an indication that serious problems have arisen that should cause the run to abort, and the outcomeOf
method exhibits
the same behavior. For example, if a test completes abruptly
with an OutOfMemoryError
, it will not be reported as a test failure, but will instead cause the run to abort.
Because not everyone uses Error
s only to represent serious problems, however, ScalaTest only behaves this way
for the following exception types (and their subclasses):
-
java.lang.annotation.AnnotationFormatError
-
java.awt.AWTError
-
java.nio.charset.CoderMalfunctionError
-
javax.xml.parsers.FactoryConfigurationError
-
java.lang.LinkageError
-
java.lang.ThreadDeath
-
javax.xml.transform.TransformerFactoryConfigurationError
-
java.lang.VirtualMachineError
The previous list includes all Error
s that exist as part of Java 1.5 API, excluding java.lang.AssertionError
.
If the code supplied to outcomeOf
completes abruptly in one of the errors in the previous list, outcomeOf
will not return an Outcome
, but rather will complete abruptly with the same exception.
will wrap any other exception thrown by the supplied code in a Some
and return it.
The outcomeOf
method (and ScalaTest in general) does treat a thrown AssertionError
as an indication of a test failure and therefore
returns a Failed
wrapping the AssertionError
. In addition, any other Error
that is not an instance of a
type mentioned in the previous list will be caught by the outcomeOf
and transformed as follows:
-
otherwise:
Failed
If the code block completes normally (i.e., it doesn't throw any exception), outcomeOf
results in Succeeded
.
- Value parameters:
- f
a block of code to execute
- Returns:
an
Outcome
representing the outcome of executing the block of code