如何使用Hilt模拟单元测试片段的视图模型



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

我目前正在使用创建我的视图模型

private val viewModel: ExampleViewModel by viewModels()

我正在使用中的代码创建用于测试的片段

我需要用mock替换这个ExampleViewModel,我该怎么做?

我将在此处粘贴"danysantiago";对问题的回应(https://github.com/google/dagger/issues/1972)与您的问题相关:

Hilt ViewModel扩展通过声明辅助绑定的模块来工作工厂到映射,而不是通过绑定具体的ViewModels。因此你想做的是绑定混凝土的辅助工厂ViewModel使用抽象ViewModel的键,以便在HiltViewModelFactory根据它使用的类键查找工厂混凝土ViewModel的辅助工厂。这是suuuper晦涩难懂,因此我的意思是"不容易"获得。

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

最新更新