gpt4 book ai didi

mocking - 具有模拟位置的 Espresso : avoid Google's experience popup

转载 作者:行者123 更新时间:2023-12-02 16:32:14 26 4
gpt4 key购买 nike

我正在使用 Espresso 在使用用户位置的基于 map 的应用程序上进行一些 UI 测试。

设置

实际结果/问题

它有效:然后将用户位置伪造为我编码的经纬度。但过了一段时间我遇到了一些麻烦。经过几次测试后,我收到一个系统弹出窗口,似乎是由嵌入在我们的应用程序中的 com.google.android.gms:play-services 触发的。

该消息是“为了获得更好的体验,请启用设备位置,它使用 Google 的位置服务。”如下图所示:

Google location service popup

因此,模拟代码似乎以某种方式触发了此弹出窗口,然后破坏了所有剩余的测试,因为弹出窗口在单击其中一个按钮之前不会关闭。

UI Automator:不是一个合适的解决方案

我知道我可以使用 UI Automator 添加一些代码来验证弹出窗口,但我想避免这种解决方法,因为:

  • 我不知道是什么触发了这个弹出窗口(似乎是随机的)
  • 我不想在仅为该弹出窗口运行每个测试之前运行一些蹩脚/重复的代码。
  • 实际上,我没有使用 UI Atomator 进行测试,也不想将其他库导入到我的项目中。

请注意,我无法在我的设备或模拟器上重现此问题,但只有当我在 gcloud(Firebase 测试实验室)上运行测试时才能重现此问题...

问题

你有遇到过这个问题吗?您知道如何避免此弹出窗口或任何不涉及 UI Automator 的解决方法吗?

还有一件事

请记住,我是在未登录任何 Google 帐户的虚拟设备上远程运行测试。另外,我无权访问设备系统/设置,但最终我应该能够使用 ADB 命令来获取某些权限或将某些设置应用于系统。

<小时/>

坏消息

实际上,虚拟设备上的 Firebase 测试实验室部分支持模拟位置。请参阅下面我的评论以获取更多信息。

因此,根据使用情况,切换到真实设备可以解决您的问题,如本主题中提到的问题。

最佳答案

如果您所看到的情况在某些设备上发生但在其他设备上有效,则可能是 Firebase 测试实验室中的错误。例如。适用于三星实体设备,但不适用于 HTC 实体设备。或者适用于所有物理设备,但不适用于虚拟设备。

由于我无法直接在 Stack Overflow 上向您发送消息,因此我鼓励您加入 https://firebase-community.slack.com/ 上的 Firebase 测试实验室 Slack channel (#test-lab) .

Firebase 工程师将积极调查您所看到的问题,并直接查看您在项目中运行的测试运行。

关于mocking - 具有模拟位置的 Espresso : avoid Google's experience popup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52806685/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com