ModifiablePayload

trait ModifiablePayload[T <: Throwable]

Trait implemented by PayloadField exception types that can modify their payload.

This trait facilitates the withPayload construct provided by trait Payloads. This construct enables a payload object (or modified payload object) to be included as the payload of a thrown exception. The payload can then be included in the ScalaTest event that results from that exception. For example, the payload included in a TestFailedException will be included as the payload of the resulting TestFailed event. Here's an example in which a GUI snapshot is included as a payload when a test fails:

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

Exception types that mix in this trait have a modifyPayload method, which returns an exception identical to itself, except with the payload option replaced with the result of invoking the passed function, supplying the current payload option as the lone Option[Any] parameter.

class Object
trait Matchable
class Any
Throwable & PayloadField

Value members

Abstract methods

def modifyPayload(fun: Option[Any] => Option[Any]): T

Returns an instance of this exception's class, identical to this exception, except with the payload option replaced with the result of invoking the passed function, fun, supplying the current payload option as the lone Option[Any] parameter.

Returns an instance of this exception's class, identical to this exception, except with the payload option replaced with the result of invoking the passed function, fun, supplying the current payload option as the lone Option[Any] parameter.

Implementations of this method may either mutate this exception or return a new instance with the revised detail message.

Value parameters:
fun

A function that returns the new payload option given the old one