inline val <T> Expect<T>.and: Expect<T>
(source)
Can be used to separate single assertions.
For instance expect(1).isLessThan(2).and.isGreaterThan(0)
creates
two assertions (not one assertion with two sub-assertions) - the first asserts that 1 is less than 2 and the second
asserts that 1 is greater than 0. If the first assertion fails, then the second assertion is not evaluated.
// and is just a filler word does not have any behaviour
expect(13).isGreaterThan(5).and.isLessThan(20)
// i.e. the above is equivalent to:
expect(13).isGreaterThan(5).isLessThan(20)
Return
an Expect for the subject of this
expectation.
infix fun <T> Expect<T>.and(assertionCreator: Expect<T>.() -> Unit): Expect<T>
(source)
Can be used to create a group of sub assertions when using the fluent API.
For instance assert(1).isLessThan(3).and { isEven(); isGreaterThan(1) }
creates
two assertions where the second one consists of two sub-assertions. In case the first assertion holds, then the
second one is evaluated as a whole. Meaning, even though 1 is not even, it still evaluates that 1 is greater than 1.
Hence the reporting might (depending on the configured Reporter) contain both failing sub-assertions.
expect(13).isA<Int>().and {
isGreaterThan(5)
isLessThan(20)
}
fails {
expect(13).isA<Int>().and {
// introduces an assertion group block
// all assertions are evaluated inside an assertion group block; for more details:
// https://github.com/robstoll/atrium#define-single-assertions-or-assertion-groups
// use `.and.` if you want fail fast behaviour
isNoneOf(1, 2, 13) // fails
isLessThan(10) // still evaluated and included in the error report
}
}
Return
an Expect for the subject of this
expectation.