Austin
06/12/2023, 1:54 AMMartin Sloup
06/12/2023, 11:03 PMclass MyClass
val sdkModule = module {
singleOf(::MyClass)
}
class MyTest {
private val sdkKoinApp = koinApplication {
// declare used modules
modules(sdkModule)
}
private val sdkKoin = sdkKoinApp.koin
val myClass by sdkKoin.inject<MyClass>()
// ...
}
BTW KoinTest is actually KoinComponent, which use global context by default.Martin Sloup
06/12/2023, 11:09 PMinject
, get
, declare
, declareMock
and checkModules
like KoinTest
.Austin
06/13/2023, 7:18 AMclass SampleA
class SampleB: CustomComponent {
val sampleA by inject<SampleA>()
}
object CustomContext {
// provide koinApp by constructing
val koin: Koin = koinApp.koin
}
abstract class CustomComponent: KoinComponent {
override fun getKoin(): Koin = CustomContext.koin
}
The issue is in testing SampleB class. As you mentioned, we cannot use KoinTest because it overrides GlobalContext's koin only.Austin
06/13/2023, 7:22 AM