@@ -6,18 +6,15 @@ import org.junit.runners.model.FrameworkMethod
6
6
import org.robolectric.RobolectricTestRunner
7
7
import org.robolectric.annotation.Config
8
8
import org.robolectric.internal.bytecode.InstrumentationConfiguration
9
- import org.robolectric.pluginapi.config.ConfigurationStrategy
10
9
import org.robolectric.pluginapi.config.Configurer
11
10
import org.robolectric.plugins.HierarchicalConfigurationStrategy
11
+ import org.robolectric.util.inject.Injector
12
12
import java.lang.reflect.Method
13
13
14
14
@RunWith(Enclosed ::class )
15
15
internal 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)) {
21
18
22
19
private val placeHolderMethod: FrameworkMethod = children[0 ]
23
20
val sdkEnvironment = getSandbox(placeHolderMethod).also {
@@ -43,16 +40,6 @@ internal class ContainedRobolectricRunner(
43
40
.build()
44
41
}
45
42
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
-
56
43
class PlaceholderTest {
57
44
@org.junit.Test
58
45
fun testPlaceholder () {
@@ -76,6 +63,10 @@ internal class ContainedRobolectricRunner(
76
63
}
77
64
78
65
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
+ }
80
71
}
81
72
}
0 commit comments