TestConfig¶
sealed interface TestConfig
Generic configuration description.
Configuration items are subclasses of Element, each identified by a unique Key. Complex configurations are created by combining simpler items using plus. Accessing a specific item is done using get.
How to create a new configuration option¶
Create a class that subclasses Element with a companion object that subclasses Key. You can store any data in this class.
class YourConfigurationOption : TestConfig.Element {
override val key get() = Companion
companion object : TestConfig.Key.Unique<YourConfigurationOption>
}
Inheritors¶
Types¶
Element¶
interface Element : TestConfig
An arbitrary configuration element.
Empty¶
object Empty : TestConfig
The empty TestConfig, useful as a default parameter when no particular configuration is required.
Key¶
interface Key<E : TestConfig.Element, U : TestConfig.Uniqueness>
Identifier of an Element.
Uniqueness¶
sealed class Uniqueness
Marker for the uniqueness of a TestConfig.Element.
Properties¶
coroutineContext¶
The coroutine context configured for this test through the Context configuration.
Note that this is different from the coroutine context actually used to run tests; the value returned by this method contains the context declared in the config, whereas more elements are injected by the test machinery when the test actually starts.
Functions¶
get¶
operator fun <E : TestConfig.Element> TestConfig.get(key: TestConfig.Key<E, TestConfig.Uniqueness.Unique>): E?
Finds the Element identified by key in the current TestConfig.
It's not possible for multiple elements to share a key marked with Uniqueness.Unique, so this function can never return multiple results. However, no elements may be identified by a key, in which case null is returned.
operator fun <E : TestConfig.Element> TestConfig.get(key: TestConfig.Key<E, TestConfig.Uniqueness.Multi>): List<E>
Finds the elements identified by key in the current TestConfig.
Keys marked with Uniqueness.Multi allow multiple elements of the same type, so this function returns a list. If no elements are found, the returned list is empty.
plus¶
operator fun TestConfig.plus(other: TestConfig): TestConfig
Combines two TestConfig instances.
The elements of other always override or combine with the elements with the same key from the receiver (depending on the Key.uniqueness).