2012-11-20 105 views
0

我已經下載從developer.androidAndroid的JUnit測試谷歌的代碼示例

public class SpinnerTestActivity extends 
     ActivityInstrumentationTestCase2<SpinnerActivity> { 

    private SpinnerActivity mActivity; 
    private Spinner mSpinner; 
    private SpinnerAdapter mPlanetData; 
    public static final int ADAPTER_COUNT = 9; 
    public static final int INITIAL_POSITION = 0; 
    public static final int TEST_POSITION = 5; 

    private String mSelection; 
    private int mPos; 

    public SpinnerTestActivity() { 
     super("com.android.example.spinner", SpinnerActivity.class); 
    } // end of SpinnerActivityTest constructor definition 

    @Override 
    protected void setUp() throws Exception { 
     super.setUp(); 

     setActivityInitialTouchMode(false); 

     mActivity = getActivity(); 

     mSpinner = (Spinner) mActivity 
       .findViewById(com.android.example.spinner.R.id.Spinner01); 

     mPlanetData = mSpinner.getAdapter(); 

    } // end of setUp() method definition 

    public void testPreConditions() { 
     assertTrue(mSpinner.getOnItemSelectedListener() != null); 
     assertTrue(mPlanetData != null); 
     assertEquals(mPlanetData.getCount(), ADAPTER_COUNT); 
    } // end of testPreConditions() method definition 

    public void testSpinnerUI() { 

     mActivity.runOnUiThread(new Runnable() { 
      public void run() { 
       mSpinner.requestFocus(); 
       mSpinner.setSelection(INITIAL_POSITION); 
      } // end of run() method definition 
     } // end of anonymous Runnable object instantiation 
       ); // end of invocation of runOnUiThread 
     this.sendKeys(KeyEvent.KEYCODE_DPAD_CENTER); 
     for (int i = 1; i <= TEST_POSITION; i++) { 
      this.sendKeys(KeyEvent.KEYCODE_DPAD_DOWN); 
     } // end of for loop 

     this.sendKeys(KeyEvent.KEYCODE_DPAD_CENTER); 
     mPos = mSpinner.getSelectedItemPosition(); 
     mSelection = (String) mSpinner.getItemAtPosition(mPos); 
     TextView resultView = (TextView) mActivity 
       .findViewById(com.android.example.spinner.R.id.SpinnerResult); 

     String resultText = (String) resultView.getText(); 

     assertEquals(resultText, mSelection); 

    } 
} 

我的問題這段代碼是:testSpinnerUI如何調用?來自哪裏?我已閱讀junit文檔,但無法弄清楚。謝謝!

+0

我不確定你到底在問什麼。你想知道如何啓動應用程序?你是否問到它是如何與啓動的活動相互作用的? –

回答

0

愚蠢的問題,雖然。我在這blog找到了答案。

測試用例的生命週期基本上是這樣的:construction,setUp()tests runtearDown()destructionsetUp()方法用於執行所有特定測試使用的任何通用初始化。在測試用例中運行的每個測試都以其自己的方法實現,其中方法名稱以「test」開頭。然後使用tearDown()方法來取消初始化由方法setUp()獲取的任何資源。 每個特定的測試都會有自己的方法,以「test」開頭 - 「test」方法名稱前綴區分大小寫!

我最初的問題是如何運行測試方法,因爲沒有人在調用它。但從上面的測試中,每種方法都應該測試一下,以便被識別。