trait TryValues extends AnyRef
Trait that provides an implicit conversion that adds success
and failure
methods
to scala.util.Try
, enabling you to make assertions about the value of a Success
or
the exception of a Failure
.
The success
method will return the Try
on which it is invoked as a Success
if the Try
actually is a Success
, or throw TestFailedException
if not.
The failure
method will return the Try
on which it is invoked as a Failure
if the Try
actually is a Failure
, or throw TestFailedException
if not.
This construct allows you to express in one statement that an Try
should be either a Success
or a Failure
and that its value or exception, respectively,should meet some expectation. Here's an example:
try1.success.value should be > 9 try2.failure.exception should have message "/ by zero"
Or, using assertions instead of a matchers:
assert(try1.success.value > 9) assert(try2.failure.exception.getMessage == "/ by zero")
Were you to simply invoke get
on the Try
,
if the Try
wasn't a Success
, it would throw the exception contained in the Failure
:
val try2 = Try { 1 / 0 }
try2.get should be < 9 // try2.get throws ArithmeticException
The ArithmeticException
would cause the test to fail, but without providing a stack depth pointing
to the failing line of test code. This stack depth, provided by TestFailedException
(and a
few other ScalaTest exceptions), makes it quicker for
users to navigate to the cause of the failure. Without TryValues
, to get
a stack depth exception you would need to make two statements, like this:
try2 should be a 'success // throws TestFailedException try2.get should be < 9
The TryValues
trait allows you to state that more concisely:
try2.success.value should be < 9 // throws TestFailedException
- Source
- TryValues.scala
- Alphabetic
- By Inheritance
- TryValues
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- class SuccessOrFailure[T] extends AnyRef
Wrapper class that adds
success
andfailure
methods toscala.util.Try
, allowing you to make statements like:Wrapper class that adds
success
andfailure
methods toscala.util.Try
, allowing you to make statements like:try1.success.value should be > 9 try2.failure.exception should have message "/ by zero"
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##(): Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- implicit def convertTryToSuccessOrFailure[T](theTry: Try[T])(implicit pos: Position): SuccessOrFailure[T]
Implicit conversion that adds
success
andfailure
methods toTry
.Implicit conversion that adds
success
andfailure
methods toTry
.- theTry
the
Try
to which to add thesuccess
andfailure
methods
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()