Compatibility with Arrow • opensavvy.prepared.compat.arrow.core
Package-level declarations¶
Helpers to integrate Arrow's Raise DSL into tests.
Let's assume we want to test a function which raises when it receives a negative number:
data object NegativeSquareRoot
context(Raise<NegativeSquareRoot>)
fun sqrt(value: Double): Double {
ensure(value >= 0) { NegativeSquareRoot }
return kotlin.math.sqrt(value)
}
We can write a test that ensures the function does not raise, using failOnRaise:
We can write a test that ensures the function does raise, using assertRaises or assertRaisesWith:
Functions¶
assertRaises¶
assertRaisesWith¶
inline fun <Failure> assertRaisesWith(block: Raise<Any?>.() -> Any?)
checkRaises¶
inline fun <Failure> checkRaises(block: Raise<Any?>.() -> Any?)
failOnRaise¶
@ExperimentalTraceApi
inline fun <Failure, Success> failOnRaise(block: Raise<Failure>.() -> Success): Success
Fails the test if block raises.