我有一个用于使用Hilt进行依赖项注入的android应用程序设置,并且想对我的片段进行单元测试。
我当前正在使用以下方法创建视图模型:
private val viewModel: ExampleViewModel by viewModels()
我正在使用here
中的代码创建用于测试的片段我需要用一个模拟替换这个ExampleViewModel,我该怎么做?
答案 0 :(得分:1)
我将在此处与您的问题相关的问题(https://github.com/google/dagger/issues/1972)中粘贴“ danysantiago”回复:
通过声明绑定辅助模块的方法,HiView ViewModel扩展起作用 工厂到地图,而不是通过绑定具体的ViewModels。因此, 您想要做的是绑定混凝土的辅助工厂 ViewModel使用抽象ViewModel的键,以便 HiltViewModelFactory根据其使用的类密钥查找工厂 具体ViewModel的辅助工厂。这是suuuper 晦涩难懂,因此为什么我的意思是“不容易”获得。
但是,如果您可以扩展测试用例,则您正在尝试编写 可以帮助我们提供一些指导,我不确定您是否 尝试模拟/伪造ViewModel本身进行测试,但进行Hilt测试 API应该允许您替换ViewModel中的依赖项,以便您 可以使用Fragment和ViewModel编写测试。