0

使用 Robotium,我如何检查重定向到 Google Play 商店?

脚步:

  1. 单击测试应用程序的列表视图中的链接。
  2. 验证它重定向到 Google Play 商店。

我注意到,虽然 Google Play 商店是打开的,但我的测试应用程序实际上也在下面打开。(我打印了所有的视图)

因此,我不能做“从测试应用程序断言 xyz 视图不存在”。

如何检查到 Google Play 的重定向?

4

1 回答 1

0

可能吗?有点,不幸的是,robotium 很难做到这一点,这是因为robotium 跟踪当前活动的方式,如果您使用直接仪器,它就像在单击之前设置一个意图过滤器一样简单启动 Play 商店的查看/执行操作,然后您可以断言您的过滤器实际上已被点击(这证明如果您没有过滤器,Google Play 商店实际上会启动)。

但是,当您使用机器人时,您不能那么容易地做到这一点,因为机器人已经有了一个匹配所有内容的意图过滤器,所以这意味着您将不得不对反射做一些可怕的事情。

您需要做的是:

获取名为 mActivityMonitors 的检测类的私有成员,在此活动监视器列表中,您会发现其中有一个,这将是机器人活动监视器,将其保存在某处,然后将其从列表中删除。

然后你需要添加你自己的它看起来像测试 googleplay 启动(我建议阅读关于 android api 文档站点上的 Intent 过滤器)

Instrumentation inst = getInstrumentation();
IntentFilter intentFilter = new IntentFilter(Intent.ACTION_View);

ActivityMonitor monitor = inst.addMonitor(intentFilter, null, true); //true is imporant it blocks the activity from launching so that your test can continue.

assertEquals(0, monitor.getHits());

//do action that fires activity

assertEquals(1, monitor.getHits());
inst.removeMonitor(monitor);

您现在需要读取您之前删除的活动监视器,以便机器人继续按预期工作。我不在一台我可以实际测试这一切的机器上,但我以前使用过这种技术。

于 2013-12-18T11:16:54.833 回答