仪表:控制生命周期

时间:2012-03-07 17:08:51

标签: android testing instrumentation android-lifecycle

如何使用Instrumentation从TestCase中控制Android Activity的生命周期?

official documentation上,声明为“生命周期控制:使用检测,您可以使用测试用例类提供的方法启动测试中的活动,暂停并销毁它。”当然,使用此测试用例时,在调用getActivity()时会自动创建Acitivity,并在每个测试用例后停止。但是如何从外部控制生命周期以检查是否所有生命周期方法都正确实现?

onActivityXXX上的生命周期方法只是帮助调用相应的方法,但不会导致Activity暂停或停止。任何人都可以帮忙,告诉我我必须使用哪些方法?

是否有任何方法可以测试Android应用程序的生命周期实现?

1 个答案:

答案 0 :(得分:1)

这不会让您完全控制生命周期,但这是找到的示例here

// Start the main activity of the application under test
    mActivity = getActivity();

    // Get a handle to the Activity object's main UI widget, a Spinner
    mSpinner = (Spinner)mActivity.findViewById(com.android.example.spinner.R.id.Spinner01);

    // Set the Spinner to a known position
    mActivity.setSpinnerPosition(TEST_STATE_DESTROY_POSITION);

    // Stop the activity - The onDestroy() method should save the state of the Spinner
    mActivity.finish();

    // Re-start the Activity - the onResume() method should restore the state of the Spinner
    mActivity = getActivity();

    // Get the Spinner's current position
    int currentPosition = mActivity.getSpinnerPosition();

    // Assert that the current position is the same as the starting position
    assertEquals(TEST_STATE_DESTROY_POSITION, currentPosition);

可让您对主要生命周期事件进行一些控制。我现在正在处理相同的问题,我正在研究机器人应该帮助