android-模仿hilt注入的viewmodel

v09wglhw  于 2021-06-27  发布在  Java
关注(0)|答案(0)|浏览(297)

hilt的辅助工厂是最终的,因此,当我们想要将viewmodel绑定模块更改为其测试版本时,我们不能创建内部匿名类。
那么,我们应该如何模仿剑柄注入的viewmodels呢?
项目视图模型绑定模块:

  1. @InstallIn(ActivityRetainedComponent::class)
  2. @Module
  3. interface ActivityModule
  4. {
  5. @Binds
  6. @IntoMap
  7. @StringKey("my.package.MyViewModel")
  8. fun bindMyViewModel(factory: MyViewModel_AssistedFactory): ViewModelAssistedFactory<out ViewModel>
  9. }

要模拟viewmodel的片段测试代码:

  1. @HiltAndroidTest
  2. @UninstallModules(ActivityModule::class)
  3. class FragmentTest
  4. {
  5. @get:Rule
  6. val hiltRule = HiltAndroidRule(this)
  7. private val viewModelFactory : MyViewModel _AssistedFactory= object : MyViewModel _AssistedFactory {
  8. //ERROR: This type is final, so it cannot be inherited from
  9. }
  10. }

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题