如何在使用Retrofit网络请求时使用IdlingResource测试Android UI

Aus*_*ney 17 android integration-testing retrofit android-espresso

我正在编写集成测试,在UI中执行使用Retrofit启动网络调用的操作.

我知道我需要实现一个CountingIdlingResource,但我想以正确的方式去做(如果已经完成,不要重新发明轮子).

有人IdlingResource在他们的应用程序的Espresso测试套件中实现了等待网络请求执行吗?

更多信息在这里.

Kau*_*pal 22

对此最直接的解决方案是:基本上将Retrofit的线程池执行器替换为AsyncTask(根据链接的Google小组讨论中非常有用的Nick推荐).我是这样做的:

new RestAdapter.Builder()
               .setEndpoint(LOCLSET_SERVER_URL)
               .setExecutors(AsyncTask.THREAD_POOL_EXECUTOR,
                             new MainThreadExecutor())
               .build();
Run Code Online (Sandbox Code Playgroud)

我不确定这是否是最合适的解决方案,但它是我能够工作的最快最理智的解决方案.请记住,这只适用于ICS +.

  • 这应该仅通过DI添加到测试中还是可以在生产中使用? (4认同)