我在用Robotium测试Coursera课程的练习时遇到了问题……我会试着用更好的方式让你理解。
我有一个在onCreate方法上以编程方式创建的TextView的活动,我确信视图的编码是正确的,实际上,当我用自己的设备运行Robotium测试时,如果屏幕是打开的,它可以通过所有的测试,但是如果我在屏幕关闭/设备锁定的情况下运行测试,Robotium将在使用waitForView方法的assertTrue中失败。
问题是,我不能确定在Coursera平台上运行测试的屏幕是打开的(而且它没有,因为它失败了,错误与我试图在关闭屏幕的情况下运行测试时出现的错误相同)。我认为这与Robotium有关……但我不确定我应该做什么才能让我的TextView在Robotium上waitForView时可见。
发布于 2015-12-13 05:43:34
Robotium是一个工具测试框架,它靠近你的应用程序的UI,所以它只有在看到按钮时才会点击按钮。
我不知道你在说什么Coursera课程,也不知道为什么你会认为他们的测试是在屏幕锁定模式下运行的--这当然是不可能的,但我可以发誓,如果你使用Espresso而不是Robotium,它也会失败。
在您的手机/仿真器函数Stay awake上找到。
你可能需要先解锁设备上的“开发者选项”。为此,选择Settings,然后单击About phone,最后在Build version上单击几次。
根据Unlocking the emulator or device for Android test的说法
运行Robotium测试时,我也遇到过不可靠的解锁问题。我没有找到一个解决方案来程序化地解锁可靠工作的设备,但我做了两件事作为变通办法。
Settings -> Security -> Screen lock -> None)即可。不是很理想,但在一天结束时,可靠的测试是重要的thing.Settings -> Developer options -> Stay awake)而关闭。一些原始设备制造商/手机要么没有这个选项,要么仍然关闭,所以对于那些讨厌的设备,我安装了KeepScreenOn应用程序。警告:让屏幕打开,一天24小时坐在主屏幕上可能会导致屏幕老化/重影。我不确定这是否是永久性的,但要注意这一点。在我们的例子中,我们使用了专用的测试设备,所以这不是什么大问题。
还要注意的是,由于手机的屏幕会一直开着,你可能想要调暗亮度以使用更少的电池电量(通过USB充电有时可能会很慢)。
我认为你也可以在setUp方法中使用uiautomator代码,它将检查屏幕是否被锁定。如果为true,则解锁设备屏幕。
https://stackoverflow.com/questions/33714567
复制相似问题