【问题标题】:Android + Espresso + async HTTP request -> how to test?Android + Espresso + 异步 HTTP 请求 -> 如何测试?
【发布时间】:2015-08-20 13:19:56
【问题描述】:

我正在尝试使用 Espresso FW 测试 Android 应用程序,但我遇到了执行异步 HTTP 请求的问题。

如何测试应用程序(活动)正在等待处理请求并在收到响应后显示下一个活动并显示结果或错误消息的情况?

我试图通过针对来自测试服务器的数据进行测试来找到如何在 Espresso 中执行此操作的任何解决方案,但没有运气。

非常感谢您提供的任何建议、示例或链接。

【问题讨论】:

    标签: android testing automated-tests android-espresso


    【解决方案1】:

    我为此苦苦挣扎了几天。如果您的应用使用改造来处理 HTTP 请求,您可以添加这一行:

    .setExecutors(AsyncTask.THREAD_POOL_EXECUTOR, new MainThreadExecutor())
    

    到您的 RestAdaptor.Builder。这会将所有 HTTP 请求移动到 AsyncTasks 池中,然后由 espresso 处理。

    我在这里找到了原始答案:http://www.michaelevans.org/blog/2015/08/03/using-espresso-for-easy-ui-testing/

    【讨论】:

      【解决方案2】:

      我认为问题出在应用架构上。 您应该使用一些依赖注入库在测试模式下在您的应用程序中使用模拟数据注入模拟服务。 当您在测试时注入“测试”实现(模拟)。 U 将避免网络可用性问题,或者您可以通过测试实现来模拟网络可用性。

      【讨论】:

      • 你能提供任何例子吗?我想测试真实的服务器数据,但如果不可能,我会使用一些模拟数据。
      • @mariopce:你能帮我吗?如何设置。有没有这方面的图书馆?我陷入了困境。请帮帮我。
      • 我不接受这个。虽然您可能应该按照您的描述使用模拟进行测试,但有正当理由针对实时服务进行测试。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-03
      • 1970-01-01
      • 2022-11-28
      相关资源
      最近更新 更多