@@ -6,18 +6,15 @@ import org.junit.runners.model.FrameworkMethod
66import org.robolectric.RobolectricTestRunner
77import org.robolectric.annotation.Config
88import org.robolectric.internal.bytecode.InstrumentationConfiguration
9- import org.robolectric.pluginapi.config.ConfigurationStrategy
109import org.robolectric.pluginapi.config.Configurer
1110import org.robolectric.plugins.HierarchicalConfigurationStrategy
11+ import org.robolectric.util.inject.Injector
1212import java.lang.reflect.Method
1313
1414@RunWith(Enclosed ::class )
1515internal class ContainedRobolectricRunner (
16- private val config : Config
17- ) : RobolectricTestRunner(PlaceholderTest : :class.java, injector) {
18- init {
19- injectKotestConfig()
20- }
16+ config : Config
17+ ) : RobolectricTestRunner(PlaceholderTest : :class.java, kotestInjector(config)) {
2118
2219 private val placeHolderMethod: FrameworkMethod = children[0 ]
2320 val sdkEnvironment = getSandbox(placeHolderMethod).also {
@@ -43,16 +40,6 @@ internal class ContainedRobolectricRunner(
4340 .build()
4441 }
4542
46- private fun injectKotestConfig () {
47- val configurationStrategyField =
48- RobolectricTestRunner ::class .java
49- .getField(ConfigurationStrategy ::class .java)
50- .apply { isAccessible = true }
51- val configurers = injector.getInstance(arrayOf<Configurer <* >>()::class .java)
52- val newConfigurationStrategy = KotestHierarchicalConfigurationStrategy (config, configurers)
53- configurationStrategyField.set(this , newConfigurationStrategy)
54- }
55-
5643 class PlaceholderTest {
5744 @org.junit.Test
5845 fun testPlaceholder () {
@@ -76,6 +63,10 @@ internal class ContainedRobolectricRunner(
7663 }
7764
7865 companion object {
79- private val injector = defaultInjector().build()
66+ private fun kotestInjector (config : Config ): Injector {
67+ val defaultInjector = defaultInjector().bind(Config ::class .java, config).build()
68+ return Injector .Builder (defaultInjector, ContainedRobolectricRunner ::class .java.classLoader)
69+ .build()
70+ }
8071 }
8172}
0 commit comments