Ive*_*ius 9 junit android dagger-2
我曾经在MVP工作,我通常使用简单的Junit(Not the Instrumentation!)来测试我的演示者,因为演示者只有业务逻辑而且没有任何对Android内部的引用.
现在切换到Dagger 2,我明白我在为我的app组件设置"TestModule"时遇到了问题.
为了说清楚,我说的是位于app-> src-> test文件夹的测试而不是app-> src-> androidTest!
所以我做错了什么?还是错过了什么?任何人都可以解释或举例说明如何在正常的单元测试中使用Dagger 2吗?
我不确定我的解决方案是否适合您,但我认为没有理由不应该这样做.首先,我创建了testInjectionComponent
@Singleton
@Component(modules = {MockNetworkModule.class})
public interface MockInjectionComponent extends InjectionComponent {
void inject(DaggerUnitTest daggerUnitTest);
}
Run Code Online (Sandbox Code Playgroud)
然后我的单元测试我在before方法中添加了注入.像这样:
@Before
public void setUp() throws Exception {
MockInjectionComponent mockInjectionComponent = DaggerMockInjectionComponent
.builder()
.mockNetworkModule(new MockNetworkModule())
.build();
mockInjectionComponent.inject(this);
}
Run Code Online (Sandbox Code Playgroud)
然后我只是注释我的注入对象.
编辑:
不要忘记testApt "com.google.dagger:dagger-compiler:$daggerVersion"在app.gradle文件中添加.
| 归档时间: |
|
| 查看次数: |
1119 次 |
| 最近记录: |