Androidテストチュートリアル(14):A c t i v i t y I n s t r u m entationTestCase 2例

2189 ワード

Activity InstrumentationTestCase 2は単一のActivityをテストするために使用され、テストされたActivityはInstrumentationTestCaseを使用することができる.LaunchActivityを起動し、テストされたActivityを直接操作できます.
Activity InstrumentationTestCase 2もサポートされています.
  • は、UIスレッドにおいて試験方法を実行することができる.
  • は、テストされたActivityの
  • にIntentオブジェクトを注入することができる.
    A t i v i t y I n s t r u m entationTestCase 2は、以前のA t i v i t y I n s t r u m entationTestCaseの代わりになり、新しいテストではA t i v i t y I n s t r u m entationTestCase 2をベースクラスとして使用する必要があります.
    Focus 2 Activity Testのコードは、Android ApiDemosの解析例をテストするためのものである(116):Views->Focus->2.Horizontal
    public class Focus2ActivityTest
     extends ActivityInstrumentationTestCase2 {
     
     private Button mLeftButton;
     private Button mCenterButton;
     private Button mRightButton;
     
     public Focus2ActivityTest() {
     super("com.example.android.apis", Focus2.class);
     }
     
     @Override
     protected void setUp() throws Exception {
     super.setUp();
     final Focus2 a = getActivity();
     mLeftButton = (Button) a.findViewById(R.id.leftButton);
     mCenterButton = (Button) a.findViewById(R.id.centerButton);
     mRightButton = (Button) a.findViewById(R.id.rightButton);
     }
     
     @MediumTest
     public void testPreconditions() {
     assertTrue("center button should be right of left button",
     mLeftButton.getRight() < mCenterButton.getLeft());
     assertTrue("right button should be right of center button",
     mCenterButton.getRight() < mRightButton.getLeft());
     assertTrue("left button should be focused", mLeftButton.isFocused());
     }
     
     @MediumTest
     public void testGoingRightFromLeftButtonJumpsOverCenterToRight() {
     sendKeys(KeyEvent.KEYCODE_DPAD_RIGHT);
     assertTrue("right button should be focused", mRightButton.isFocused());
     }
     
     @MediumTest
     public void testGoingLeftFromRightButtonGoesToCenter()  {
     
     getActivity().runOnUiThread(new Runnable() {
     public void run() {
     mRightButton.requestFocus();
     }
     });
     // wait for the request to go through
     getInstrumentation().waitForIdleSync();
     
     assertTrue(mRightButton.isFocused());
     
     sendKeys(KeyEvent.KEYCODE_DPAD_LEFT);
     assertTrue("center button should be focused",
     mCenterButton.isFocused());
     }
    }