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
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
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[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
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: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
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( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )