如何自动测试活动堆栈的状态?

时间:2012-05-12 09:32:35

标签: android android-activity automated-tests robotium

我想确保当用户按下“关闭”按钮时,他不会看到正在测试的活动而是“主页”屏幕。

使用Robotium我可以写例如。

@Override 
protected void setUp() throws Exception { 
    solo = new Solo(getInstrumentation(),getActivity()); 
} 

public void testMainUseCase() throws InterruptedException {
    solo.clickOnText("close");

    Log.w("CURRENT_ACT", solo.getCurrentActivity().getClass().toString());  
}

但是在日志中,我得到了“MainActivity”(即测试中的活动),即使我可以在我的设备上看到活动已经消失。

另一方面,使用Roboelectric,我可以编写这样一个片段:

@Test
public void shouldStopWhenRejectButtonClicked() throws Exception {      
      activity.onCreate(null);

      clickOn(activity.findViewById(R.id.close));
}

但同样,我不知道如何检查用户看到的活动不再是被测活动。

1 个答案:

答案 0 :(得分:0)

您可以做的是检查焦点是否仍在测试中。如果焦点,solo.getCurrentActivity()。hasWindowFocus()为false,则启动另一个现在具有焦点的活动。