如何在测试时注入不同的客户端进行改造?

时间:2015-04-01 17:11:09

标签: android retrofit android-testing dagger

有没有办法改变注入方式,使用Dagger,在仪器测试中使用与RestAdapter不同的客户端的Retrofit模块?

@Provides
@Singleton
public APIService getAPIService() {
    RestAdapter restAdapter = new RestAdapter.Builder()
            .setEndpoint(BuildConfig.HOST)
            .build();
    return restAdapter.create(APIService.class);
}

但是,我想在执行检测测试时设置一个新客户端。

@Provides
@Singleton
public APIService getAPIService() {
    RestAdapter restAdapter = new RestAdapter.Builder()
            .setEndpoint(BuildConfig.HOST)
            .setClient(new MockClient())
            .build();
    return restAdapter.create(APIService.class);
}

有没有办法做到这一点?

感谢

1 个答案:

答案 0 :(得分:0)

我在我的项目中这样做了。您可以找到示例here。应用程序代码使用Kotlin编写并使用Dagger 2.主分支包含Java代码和Dagger 1实现。我希望这会有所帮助:)