【问题标题】:Injecting mocks in Tests using Dagger2使用 Dagger2 在测试中注入模拟
【发布时间】:2015-11-15 17:50:09
【问题描述】:

说 A 类依赖于 B,我想测试 A 类。

我为要模拟 B 的 A 类创建了一个测试。

使用 Dagger2(使用模块和组件)将 B 类注入到 A 类中。意思是,A 类有一个类成员:

@Inject
B mB;

在我的测试类中,我在 setUp() 方法中创建了一个 A 的实例。

如何将 B 类的模拟实例提供给 A?

【问题讨论】:

    标签: android unit-testing dependency-injection dagger-2


    【解决方案1】:

    如果您通常使用 Dagger 注入依赖项,则需要使用模拟构建风格提供模拟实现。通常这是通过用 MockModule 替换 ProdModule 之类的东西来完成的,然后在你的模拟或测试风格中 @Provides 模拟实现。

    否则,一个很好的测试选项是 Mockito,如果你想保证你的模拟返回你想要的,这样你就不必担心模拟实现中有错误。

    【讨论】:

    • 我不明白构建风味如何在这里为我提供帮助。对于每个具有我要测试的依赖项的类,我是否需要在主代码和测试文件夹中都有一个模块和一个组件?
    猜你喜欢
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    • 1970-01-01
    相关资源
    最近更新 更多