【问题标题】:How to mock the view model with Hilt for unit testing fragments?如何使用 Hilt 模拟视图模型以进行单元测试片段?
【发布时间】:2020-07-09 21:14:52
【问题描述】:

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

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

private val viewModel: ExampleViewModel by viewModels()

我正在使用来自here 的代码创建用于测试的片段

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

【问题讨论】:

    标签: android kotlin android-viewmodel dagger-hilt


    【解决方案1】:

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

    Hilt ViewModel 扩展通过声明绑定辅助的模块来工作 工厂到地图,而不是通过绑定具体的 ViewModel。所以, 你要做的是绑定混凝土的辅助工厂 ViewModel 使用抽象 ViewModel 的键,这样当 HiltViewModelFactory 根据使用的类键查找工厂 具体 ViewModel 的辅助工厂。这是超级 晦涩难懂,因此我的意思是“不容易”获得。

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

    【讨论】:

      猜你喜欢
      • 2013-08-20
      • 1970-01-01
      • 2011-11-26
      • 1970-01-01
      • 2013-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-04
      相关资源
      最近更新 更多