Packages

trait Payloads extends AnyRef

Trait facilitating the inclusion of a payload in a thrown ScalaTest exception.

This trait includes a withPayload construct that enables a payload object (or modified payload object) to be included as the payload of a thrown exception.

Many ScalaTest events include an optional "payload" field that can be used to pass information to a custom reporter. This trait facilitates such customization, by making it easy to insert a payload into a thrown exception, such as a TestFailedException. The thrown exception must mix in Payload. ScalaTest looks for trait Payload and fires any payloads it finds in the relevant ScalaTest event stimulated by the exception, such as a TestFailed event stimulated by a TestFailedException. Here's an example in which a GUI snapshot is included as a payload when a test fails:

withPayload(generateGUISnapshot()) {
  1 + 1 should === (3)
}

Source
Payloads.scala
Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Payloads
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. def withPayload[T](payload: ⇒ Any)(fun: ⇒ T): T

    Executes the block of code passed as the second parameter, and, if it completes abruptly with a ModifiablePayload exception, replaces the current payload contained in the exception, if any, with the one passed as the first parameter.

    Executes the block of code passed as the second parameter, and, if it completes abruptly with a ModifiablePayload exception, replaces the current payload contained in the exception, if any, with the one passed as the first parameter.

    This method allows you to insert a payload into a thrown Payload exception (such as a TestFailedException), so that payload can be included in events fired to a custom reporter that can make use of the payload. Here's an example in which a GUI snapshot is included as a payload when a test fails:

    withPayload(generateGUISnapshot()) {
      1 + 1 should === (3)
    }