object Outcome extends Serializable
Companion object for trait Outcome
that contains an implicit method that enables
collections of Outcome
s to be flattened into a collections of contained exceptions.
- Source
- Outcome.scala
- Alphabetic
- By Inheritance
- Outcome
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
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 convertOutcomeToIterator(outcome: Outcome): Iterator[Throwable]
Enables collections of
Outcome
s to be flattened into a collections of contained exceptions.Enables collections of
Outcome
s to be flattened into a collections of contained exceptions.Here's an example:
scala> import org.scalatest._ import org.scalatest._ scala> import prop.TableDrivenPropertyChecks._ import prop.TableDrivenPropertyChecks._ scala> val squares = // (includes errors) | Table( | ("x", "square"), | ( 0 , 0 ), | ( 1 , 1 ), | ( 2 , 4 ), | ( 3 , 8 ), | ( 4 , 16 ), | ( 5 , 26 ), | ( 6 , 36 ) | ) squares: org.scalatest.prop.TableFor2[Int,Int] = TableFor2((x,square), (0,0), (1,1), (2,4), (3,8), (4,16), (5,26), (6,36))
Given the above table, which includes some errors, you can obtain an
IndexedSeq
of theOutcome
s of executing an assertion on each row of the table withoutcomeOf
, like this:scala> import OutcomeOf._ import OutcomeOf._ scala> import Matchers._ import Matchers._ scala> val outcomes = for ((x, square) <- squares) yield outcomeOf { square shouldEqual x * x } outcomes: IndexedSeq[org.scalatest.Outcome] = Vector(Succeeded, Succeeded, Succeeded, Failed(org.scalatest.exceptions.TestFailedException: 8 did not equal 9), Succeeded, Failed(org.scalatest.exceptions.TestFailedException: 26 did not equal 25), Succeeded)
Now you have a collection of all the outcomes, including successful ones. If you just want the
Failed
andCanceled
outcomes, which contain exceptions, you can filter out anything that isn't "exceptional," like this:scala> outcomes.filter(_.isExceptional) res1: IndexedSeq[org.scalatest.Outcome] = Vector(Failed(org.scalatest.exceptions.TestFailedException: 8 did not equal 9), Failed(org.scalatest.exceptions.TestFailedException: 26 did not equal 25))
But if you just wanted the contained exceptions, you can (thanks to this implicit method) invoke
flatten
on your collection:scala> outcomes.flatten res2: IndexedSeq[Throwable] = Vector(org.scalatest.exceptions.TestFailedException: 8 did not equal 9, org.scalatest.exceptions.TestFailedException: 26 did not equal 25)
- 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()