如何查看子活动是否已启动

时间:2011-08-08 17:05:42

标签: android unit-testing

我正在为Android应用程序编写单元测试。

我想看看点击按钮是否会打开正确的子活动。

有一个主要活动,其中有两个按钮,每个按钮在点击时启动一个子活动。

我认为问题的发生是因为这些是子活动。

所以,这是我的单元测试用例中的测试方法。

@UiThreadTest
public void testActivityLaunch() {
    //Launches a subActivity
    theButton.performClick();

    ActivityManager am = (ActivityManager) mActivity.getSystemService(Service.ACTIVITY_SERVICE);
    List<RunningAppProcessInfo> procInfos = am.getRunningAppProcesses();
    List<ActivityManager.RecentTaskInfo> processes = am.getRecentTasks(5, ActivityManager.RECENT_WITH_EXCLUDED);
}

我设置了一个断点并查看了procInfos和进程,但我看不到subActivity的名称。

我在正在测试的应用程序中创建了一个类似的方法,即使在启动后,我仍然无法在列表中看到子活动的名称。

我只需要访问进程列表中的子活动名称,就可以知道按钮点击是否正确启动了。还有其他方法可以测试吗?

我不想使用任何其他框架,例如Robotium,而不是ADK提供的框架。

编辑:毕竟我不确定这是否是一项子活动。我刚读了一篇文章说如果用startActivityForResult()启动它就被认为是一个子活动。在按钮上单击监听器我用startActivity()启动它。

1 个答案:

答案 0 :(得分:0)

您需要ActivityMonitor等待已启动的活动。 Android Application Testing Guide中有一个非常类似的例子。