first
infix fun <K, V, T : Pair<K, V>> Expect<T>.first(assertionCreator: Expect<K>.() -> Unit): Expect<T>(source)
Expects that the property Pair.first of the subject of this
expectation holds all assertions the given assertionCreator creates for it and returns an Expect for the current subject of this
expectation.
Return
an Expect for the subject of this
expectation.
Samples
val pair = 1 to "one"
expect(pair)
.first { // subject inside this expectation-group is of type Int (actually 1)
it toBeLessThan 2
} // subject here is back to type Pair<Int, String>
.first { // subject inside this expectation-group is of type Int (actually 1)
it toBeGreaterThan 0
}
fails {
// all expectations inside an expectation-group are evaluated together; for more details see:
// https://github.com/robstoll/atrium#define-single-expectations-or-an-expectation-group
expect(pair)
.first { // subject inside this expectation-group is of type Int (actually 1)
it toBeGreaterThan 2 //fails
it toBeLessThan 0 // still evaluated even though `toBeGreaterThan` already fails
// use ` first o` if you want a fail fast behaviour
}
}
Creates an Expect for the property Pair.first of the subject of this
expectation, so that further fluent calls are assertions about it.
Return
The newly created Expect for the extracted feature.
Samples
val pair = 1 to "one"
expect(pair)
.first toBeLessThan 2 toBeGreaterThan 0
// | subject is now of type Int (actually 1)
fails {
expect(pair)
.first toBeGreaterThan 2 toBeLessThan 0
// | | | not reported because `toBeGreaterThan` already fails
// | | fails
// | subject is now of type Int (actually 1)
// use ` first { ... }` if you want that all assertions are evaluated
}