测试单击按钮时是否启动了正确的活动

时间:2011-08-11 17:04:22

标签: android unit-testing testing android-activity

我正在为一个有几个按钮的活动编写测试, 每个人都开始一个新的活动,

如何知道按钮是否正在开始正确的活动?

这是我到目前为止所做的:

public class MainActivityTest extends ActivityUnitTestCase<MainActivity> {

    private Intent mMainIntent;


    public MainActivityTest() {
        super(MainActivity.class);
    }


    @Override
    protected void setUp() throws Exception {
        super.setUp();
        mMainIntent = new Intent(Intent.ACTION_MAIN);
    }

    @MediumTest
    public void testButtonActivityA () {
        MainActivity activity = startActivity(mMainIntent, null, null);
        Button buttonActivityA = (Button) activity.findViewById(com.project.R.id.button_activity_a);
        buttonVoice.performClick();
        Intent i = getStartedActivityIntent();
        assertNotNull(i);
        assertTrue(isFinishCalled());
    }
}

PS:'isFinishedCalled()'失败,如果我举起一个新的全屏活动怎么会这样? 谢谢,

1 个答案:

答案 0 :(得分:1)

它失败了,因为没有调用finish()。

你必须自己完成一项活动,否则当你打开一个新活动时,它会出现在'堆栈'的顶部并且原始活动已经被onPause调用但仍然“活着”。 finish()是一个隐式调用,您可以将其编码到应用程序中以销毁活动。

请阅读Android Activity Lifecycle

然后学会致电when you should call finish()