我正在尝试对共享相同 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
}
Run Code Online (Sandbox Code Playgroud)
收到的消息是
Caused by: java.lang.InstantiationException: java.lang.Class<SomeViewModel> has no zero argument constructor
Run Code Online (Sandbox Code Playgroud)