我们有一个 Android 应用程序使用 compose 作为视图层,并且我们使用 Kodein 进行所有依赖注入。
我有一个 DIAware BaseApplication 类:
class BaseApplication : Application(), DIAware {
override val di: DI = DI.lazy {
import(modules) // modules defined in respective packages
}
}
我还有一个 MainActivity 和一个导航图来管理各种可组合项之间的导航。
问题:如何在 MainActivity 的检测测试中正确覆盖这些模块?
@RunWith(AndroidJUnit4::class)
class MainActivityTest {
@get:Rule
val composeTestRule = createAndroidComposeRule<MainActivity>()
val moduleOverrides = DI.Module(allowSilentOverride = true) {
// add bindings for fakes w/ allowOverride = true
}
@Before
fun setup() {
val application =
ApplicationProvider.getApplicationContext() as BaseApplication
// how can I override the BaseApplication modules for my test?
}
}
我似乎找不到任何关于此事的明确语言,并且觉得我遗漏了一些非常明显的东西。任何帮助将不胜感激。