io.kotlintest.specs.AbstractStringSpec.kt Maven / Gradle / Ivy
package io.kotlintest.specs
import io.kotlintest.AbstractSpec
import io.kotlintest.Tag
import io.kotlintest.TestCaseConfig
import io.kotlintest.TestContext
import io.kotlintest.TestType
import io.kotlintest.extensions.TestCaseExtension
import java.time.Duration
/**
* Example:
*
* "my test" {
* }
*
*/
abstract class AbstractStringSpec(body: AbstractStringSpec.() -> Unit = {}) : AbstractSpec() {
init {
body()
}
fun String.config(
invocations: Int? = null,
enabled: Boolean? = null,
timeout: Duration? = null,
threads: Int? = null,
tags: Set? = null,
extensions: List? = null,
test: TestContext.() -> Unit) {
val config = TestCaseConfig(
enabled ?: defaultTestCaseConfig.enabled,
invocations ?: defaultTestCaseConfig.invocations,
timeout ?: defaultTestCaseConfig.timeout,
threads ?: defaultTestCaseConfig.threads,
tags ?: defaultTestCaseConfig.tags,
extensions ?: defaultTestCaseConfig.extensions)
addTestCase(this, test, config, TestType.Test)
}
operator fun String.invoke(test: TestContext.() -> Unit) =
addTestCase(this, test, defaultTestCaseConfig, TestType.Test)
}