doc / ch.tutteli.atrium.api.fluent.en_GB / message

message

val <T : Throwable> Expect<T>.message: Expect<String> (source)

Expects that the property Throwable.message of the subject of this expectation is not null, creates an Expect for it and returns it.

expect(RuntimeException("abc")).message { // subject inside this block is of type String (actually "abc")
    toContain("a")
} // subject here is back to type RuntimeException

fails {
    expect(RuntimeException("abc")).message { // subject inside this block is of type String (actually "abc")
        toContain("d")   // fails
        toStartWith("z") // still evaluated even though `toContain` already fails
        //                  use `.message.` if you want a fail fast behaviour
    }
}

Return
The newly created Expect for the property Throwable.message of the subject of this expectation.

fun <T : Throwable> Expect<T>.message(assertionCreator: Expect<String>.() -> Unit): Expect<T> (source)

Expects that the property Throwable.message of the subject of this expectation is not null and holds all assertions the given assertionCreator creates for it and returns an Expect for the current subject of this expectation.

expect(RuntimeException("abc"))
    .message         // subject is now of type String
    .toContain("a")

fails {
    expect(RuntimeException("abc"))
        .message
        .toContain("d")   // fails
        .toStartWith("z") // not evaluated/reported because `toContain` already fails
    //                       use `.message { ... }` if you want that all assertions are evaluated
}

Return
an Expect for the subject of this expectation.