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:
If the code block completes normally (i.e., it doesn't throw any exception), outcomeOf
results in Succeeded
.
a block of code to execute
an Outcome
representing the outcome of executing the block of code
Companion object that facilitates the importing of
OutcomeOf
's method as an alternative to mixing it in. One use case is to importOutcomeOf
's method so you can use it in the Scala interpreter.