Suite • opensavvy.prepared.suite.config • Context
Context¶
class Context(val context: CoroutineContext) : TestConfig.Element
Configures the CoroutineContext of the started tests.
When a test is executed, the configured context is injected. Note that the Prepared library injects some context elements itself, which will thus be ignored even if set using this configuration.
-
The CoroutineName will be set to the test's name.
-
The CoroutineDispatcher must not be changed, or it will break the virtual time.
Because of this, this configuration is likely only useful to inject your own coroutine context elements, not any of the built-ins.
If multiple Context
instances are placed in the same test config, the behavior is the same as when combining multiple CoroutineContext elements: later elements of a given type override previous elements of the same type.
Example¶
Let's imagine that you have an AuthContext
element that stores the current user, and is used throughout your codebase to check access rights of the current user. You can use this configuration to inject it into all tests that are part of suite:
Or within a specific test:
See also¶
- coroutineContextAccess the configured elements.
Constructors¶
Context¶
constructor(context: CoroutineContext)
Types¶
Companion¶
object Companion : TestConfig.Key.Multi<Context>
Properties¶
context¶
val context: CoroutineContext
coroutineContext¶
The coroutine context configured for this test through the Context configuration.
key¶
open override val key: Context.Companion
The identifier for this test configuration element.
Functions¶
get¶
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.
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.
plus¶
operator fun TestConfig.plus(other: TestConfig): TestConfig
Combines two TestConfig instances.