Instrumentation test for Android - How to receive new Activity after orientation change?

后端 未结 5 808
臣服心动
臣服心动 2021-01-06 04:11


I\'m trying to test, if newly created Activity (after orientation change) is properly reinitialized. The code below shows that activity returned from getActivity() is t

5条回答
  •  不思量自难忘°
    2021-01-06 04:42

    Ok, I think I finally managed to solve it - with robotium framework. I'm attaching the solution in case someone had the same problem.

    Test:

    public class MyActivityTest extends ActivityInstrumentationTestCase2{
    
    private static final String TAG = "RAMPS";
    private MyActivity mActivity;
    private Solo mSolo;
    
    public MyActivityTest() {
        super("com.ramps", MyActivity.class);
    
    }
    
    @Override
    protected void setUp() throws Exception {
        super.setUp();
        mActivity = getActivity();
        mSolo = new Solo(getInstrumentation(), getActivity());
        Log.v(TAG, "setUp; activity=" + mActivity);
    }
    
    public void testOrienationChange(){     
        mSolo.setActivityOrientation(Solo.LANDSCAPE);
        getInstrumentation().waitForIdleSync();
        MyActivity newActivity = getActivity(); //should be new, but it's not
        Activity newActivity2 = mSolo.getCurrentActivity(); //this will return new activity
        Log.v(TAG, "testOrienationChange; activity=" + newActivity);
        Log.v(TAG, "testOrienationChange; activity2=" + newActivity2);
    }   
    

    }

    And log messages - for confirmation:

    06-11 18:47:02.631: V/RAMPS(716): onCreate; activity=MyActivity@44c326a8
    06-11 18:47:03.061: V/RAMPS(716): setUp; activity=MyActivity@44c326a8
    06-11 18:47:03.781: V/RAMPS(716): onCreate; activity=MyActivity@44c481e0
    06-11 18:47:04.482: V/RAMPS(716): testOrienationChange; activity=MyActivity@44c326a8
    06-11 18:47:04.482: V/RAMPS(716): testOrienationChange; activity2=MyActivity@44c481e0
    

    As you can see, activity returned from mSolo.getCurrentActivity() is the same that was created after orientation change. I really recommend Robotium - another great piece of code from Jayway!

提交回复
热议问题