如何使用Hilt模拟视图模型以进行单元测试片段?

时间:2020-07-09 21:14:52

标签: android kotlin android-viewmodel dagger-hilt

我有一个用于使用Hilt进行依赖项注入的android应用程序设置,并且想对我的片段进行单元测试。

我当前正在使用以下方法创建视图模型:

private val viewModel: ExampleViewModel by viewModels()

我正在使用here

中的代码创建用于测试的片段

我需要用一个模拟替换这个ExampleViewModel,我该怎么做?

1 个答案:

答案 0 :(得分:1)

我将在此处与您的问题相关的问题(https://github.com/google/dagger/issues/1972)中粘贴“ danysantiago”回复:

通过声明绑定辅助模块的方法,HiView ViewModel扩展起作用 工厂到地图,而不是通过绑定具体的ViewModels。因此, 您想要做的是绑定混凝土的辅助工厂 ViewModel使用抽象ViewModel的键,以便 HiltViewModelFactory根据其使用的类密钥查找工厂 具体ViewModel的辅助工厂。这是suuuper 晦涩难懂,因此为什么我的意思是“不容易”获得。

但是,如果您可以扩展测试用例,则您正在尝试编写 可以帮助我们提供一些指导,我不确定您是否 尝试模拟/伪造ViewModel本身进行测试,但进行Hilt测试 API应该允许您替换ViewModel中的依赖项,以便您 可以使用Fragment和ViewModel编写测试。

相关问题