【发布时间】:2016-06-30 09:42:41
【问题描述】:
我正在使用Dagger 2 并尝试在测试时提供不同的依赖项。
我可以为测试提供不同的依赖项,但不幸的是,这些依赖项随后会应用于androidTest 目录中的所有测试。
我通过指定使用TestAppModule 的TestAppComponent 来做到这一点。在扩展我的AndroidApplication 的TestApplication 中,我提供TestAppComponent 而不是真正的AppComponent。然后我有TestRunner,它扩展了newApplication 方法,如下所示:
@Override
public Application newApplication(ClassLoader cl, String className, Context context) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
return super.newApplication(cl, TestApplication.class.getName(), context);
}
然后为了使用这个跑步者,我将当前跑步者替换为以下内容:
testInstrumentationRunner "com.company.myapp.TestRunner"
我的问题
如何为不同的测试使用不同的组件/应用程序/测试运行器,而不是为每个测试使用相同的?我可能想在一个测试中模拟一个依赖项,而不是在另一个测试中?
【问题讨论】:
标签: android unit-testing dagger-2