Robotium:回到被测活动

时间:2012-06-22 10:52:23

标签: android unit-testing android-activity robotium

我使用Robotium为Android应用编写测试用例。我的一个测试用例会打开一个文件(例如图像),该文件会导致另一个应用程序打开另一个活动以显示图像。

到目前为止,一切都很好。但是,之后,我想回到我的测试活动,因为我想测试更多的功能。

我怎么能取消这个?

无论

solo.sendKey(android.view.KeyEvent.KEYCODE_BACK);

,也不

solo.goBack();

,也不

solo.getCurrentActivity().onBackPressed()

有效,因为显示图像的活动属于另一个应用程序,因此属于另一个进程。

我还能尝试其他什么?

4 个答案:

答案 0 :(得分:4)

您正在进行验收测试是的,这是为了查看系统的用户界面是否有效。

您无需测试图像是否已打开(因为这超出了您的应用范围)。

然而建议您使用单独的单元测试来断言您调用正确的意图(或任何代码段)来打开此图像。

通过这种方式,您可以通过测试覆盖代码,而无需测试其他人代码的问题。

答案 1 :(得分:1)

我建议您重新启动目标活动以达到初始状态:

     .....      mSolo.finishOpenedActivities();                         setActivity(NULL);                         mSolo = new Solo(mInstrumentation,getActivity());     ....

答案 2 :(得分:1)

对我来说,这可以胜任:

mSolo.goBackToActivity("MainActivity");

在我的情况下,我在浏览器中打开一个URL,然后我回到测试中的活动。唯一的缺点(到目前为止)是另一个应用程序仍然在后台,但也可能有一个修复。

我认为在提出这个问题后已添加此方法。

答案 3 :(得分:0)

如果您能够执行adb命令并且您知道此意图启动了哪个应用程序,则可以执行以下操作:

adb shell am force-stop <package-of-started-app>

然后你回到之前的活动。

注意:如果此意图有多个可能的应用程序并且显示应用程序选择对话框,则此方法无效。在这种情况下,您必须手动设置此意图的默认应用程序。