我正在尝试为共享同一ViewModel的片段运行Android仪器测试。 ViewModel具有一些参数。 我使用koin,但在测试中使用activityViewModels时,koin不会注入ViewModel。
class SomeFragment() : Fragment() {
private val viewModel: SomeViewModel by activityViewModels()
... more code
}
class SomeFragmentTest() : KoinTest{
@Before
fun setup() {
val viewModel: SomeViewModel = mockk(relaxed = true)
startKoin { loadKoinModules(listOf(
module(override = true) { viewModel },
module(override = true) { factory { appAnalytics } })) }
}
.... more code
}
收到的消息是:
Caused by: java.lang.InstantiationException: java.lang.Class<SomeViewModel> has no zero argument constructor