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

有什么方法可以改变用Dagger将具有不同客户端的Retrofit模块注入到仪器测试的RestAdapter上的方法吗?

@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); } 

有没有办法做到这一点?

谢谢

我在我的项目中做了这个。 你可以在这里找到样品。 应用程序代码是用Kotlin编写的,使用Dagger 2.主分支包含Java代码和Dagger 1实现。 我希望这会帮助:)