gpt4 book ai didi

java - Android Espresso 测试中的 stub /模拟意图

转载 作者:搜寻专家 更新时间:2023-11-01 03:20:25 26 4
gpt4 key购买 nike

我想在我的应用程序中测试以下流程:

  1. 用户点击扫描按钮
  2. onClick ZXing 应用启动
  3. 如果返回正确的二维码,我们将继续,否则用户可以选择手动输入代码

我想用 Espresso 测试这个流程。我想我必须使用 intended 或 intending 1但我不确定如何检查意图是否为 ZXing 以及如何返回应用程序。

最佳答案

使用 espresso-intents 的一般流程是这样的:

  1. 调用 intending(X).respondWith(Y) 以设置模拟。
  2. 执行应导致发送意图的操作。
  3. 调用 intended(Z) 以验证模拟是否收到了预期的意图。

X 和 Z 可以相同,但我倾向于使 X 尽可能通用(例如只匹配组件名称),并使 Z 更具体(检查附加值等)。

例如对于 ZXing,我可能会做这样的事情(警告:我还没有测试过这段代码!):

Intents.intending(hasAction("com.google.zxing.client.android.SCAN"); // Match any ZXing scan intent
onView(withId(R.id.qr_scan_button).perform(click()); // I expect this to launch the ZXing QR scanner
Intents.intended(Matchers.allOf(
hasAction("com.google.zxing.client.android.SCAN"),
hasExtra("SCAN_MODE", "QR_CODE_MODE"))); // Also matchs the specific extras I'm expecting

关于java - Android Espresso 测试中的 stub /模拟意图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31988532/

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