【问题标题】:How to generate DaggerComponent class in the test/java folder?如何在 test/java 文件夹中生成 Dagger 组件类?
【发布时间】:2016-06-28 10:34:10
【问题描述】:

我是 Dagger 2 的新手,我正在使用 Dagger 2 进行单元测试。我想测试我的演示者并模拟一些数据源(服务器连接、SharedPreferences)。
对于 SharedPreferences 我在main 文件夹中有SharedPreferencesComponent,在test/java 文件夹中有SharedPreferencesComponentFake。问题是匕首不能生成DaggerSharedPreferencesComponentFake,因此我不能注入SharedPreferencesFake 而不是SharedPreferences。 我该如何设置,以便 dagger 将生成 DaggerSharedPreferencesFake 类,或者我是否以错误的方式使用 dagger 2

【问题讨论】:

标签: android unit-testing dagger-2


【解决方案1】:

为什么不使用 Mockito 而只是模拟 SharedPreferencesComponent

  Mockito.when(SharedPreferencesComponent.yourMethod(any(String.class)))
            .thenReturn(yourWanterOutput);

这将使伪造类变得不必要并且代码会更简洁。

【讨论】:

  • 是的,但我想知道使用匕首测试更好,我已经准备了假类
  • 您使用模拟和存根来隔离行为。在这种特殊情况下,您不想测试共享偏好,这就是您模拟他们的行为的原因,因此它是恒定的,对于测试的最终结果并不重要。如果您要测试 SharedPreferences 的一些真实行为,那么您可以用匕首添加它们。你不能说 dagger 或 mocking 或 stubbing 更适合测试它们都有不同的用途。
猜你喜欢
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 2020-12-18
  • 2017-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-04
相关资源
最近更新 更多