【问题标题】:Test if when a Button is clicked the correct activity is lauched测试单击按钮时是否启动了正确的活动
【发布时间】:2011-08-11 17:04:22
【问题描述】:

我正在为一个有几个按钮的活动编写测试, 每一个都启动一个新的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()' 失败了,如果我提出一个新的全屏 Activity 怎么会这样? 谢谢,

【问题讨论】:

标签: android unit-testing testing android-activity


【解决方案1】:

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

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

请阅读Android Activity Lifecycle

那就学着打电话when you should call finish()

【讨论】:

    猜你喜欢
    • 2012-03-19
    • 1970-01-01
    • 1970-01-01
    • 2011-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多