Make assertFailsWith common
Because headers cannot have default parameters. This leads to less effective implementation in JVM.
This commit is contained in:
@@ -102,6 +102,18 @@ fun assertFails(message: String?, block: () -> Unit): Throwable {
|
||||
asserter.fail(messagePrefix(message) + "Expected an exception to be thrown, but was completed successfully.")
|
||||
}
|
||||
|
||||
/** Asserts that a [block] fails with a specific exception of type [T] being thrown.
|
||||
* Since inline method doesn't allow to trace where it was invoked, it is required to pass a [message] to distinguish this method call from others.
|
||||
*/
|
||||
@InlineOnly
|
||||
inline fun <reified T : Throwable> assertFailsWith(message: String? = null, noinline block: () -> Unit): T {
|
||||
val exception = assertFails(message, block)
|
||||
val messagePrefix = if (message == null) "" else "$message. "
|
||||
|
||||
assertTrue(exception is T, "${messagePrefix}An exception thrown is not of the expected type: $exception")
|
||||
return exception as T
|
||||
}
|
||||
|
||||
/**
|
||||
* Abstracts the logic for performing assertions. Specific implementations of [Asserter] can use JUnit
|
||||
* or TestNG assertion facilities.
|
||||
|
||||
@@ -25,6 +25,7 @@ fun todo(block: () -> Any) {
|
||||
println("TODO at " + block)
|
||||
}
|
||||
|
||||
/*
|
||||
/** Asserts that a [block] fails with a specific exception of type [T] being thrown.
|
||||
* Since inline method doesn't allow to trace where it was invoked, it is required to pass a [message] to distinguish this method call from others.
|
||||
*/
|
||||
@@ -35,6 +36,7 @@ inline fun <reified T : Throwable> assertFailsWith(message: String? = null, noin
|
||||
assertTrue(exception is T, "${messagePrefix}An exception thrown is not of the expected type: $exception")
|
||||
return exception as T
|
||||
}
|
||||
*/
|
||||
|
||||
var _asserter: Asserter = QUnitAsserter()
|
||||
|
||||
|
||||
@@ -47,12 +47,13 @@ fun <T : Throwable> assertFailsWith(exceptionClass: KClass<T>, block: () -> Unit
|
||||
/** Asserts that a [block] fails with a specific exception of type [exceptionClass] being thrown. */
|
||||
fun <T : Throwable> assertFailsWith(exceptionClass: KClass<T>, message: String?, block: () -> Unit): T = assertFailsWithImpl(exceptionClass.java, message, block)
|
||||
|
||||
/*
|
||||
/** Asserts that a [block] fails with a specific exception of type [T] being thrown.
|
||||
* Since inline method doesn't allow to trace where it was invoked, it is required to pass a [message] to distinguish this method call from others.
|
||||
*/
|
||||
@InlineOnly
|
||||
inline fun <reified T : Throwable> assertFailsWith(message: String? = null, noinline block: () -> Unit): T = assertFailsWith(T::class, message, block)
|
||||
|
||||
*/
|
||||
|
||||
/**
|
||||
* Comments out a [block] of test code until it is implemented while keeping a link to the code
|
||||
|
||||
Reference in New Issue
Block a user