使用 Robotium,我如何检查重定向到 Google Play 商店?
脚步:
- 单击测试应用程序的列表视图中的链接。
- 验证它重定向到 Google Play 商店。
我注意到,虽然 Google Play 商店是打开的,但我的测试应用程序实际上也在下面打开。(我打印了所有的视图)
因此,我不能做“从测试应用程序断言 xyz 视图不存在”。
如何检查到 Google Play 的重定向?
使用 Robotium,我如何检查重定向到 Google Play 商店?
脚步:
我注意到,虽然 Google Play 商店是打开的,但我的测试应用程序实际上也在下面打开。(我打印了所有的视图)
因此,我不能做“从测试应用程序断言 xyz 视图不存在”。
如何检查到 Google Play 的重定向?
可能吗?有点,不幸的是,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);
您现在需要读取您之前删除的活动监视器,以便机器人继续按预期工作。我不在一台我可以实际测试这一切的机器上,但我以前使用过这种技术。