0

このコードをdeveloper.androidからダウンロードしました

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のドキュメントを読みましたが、理解できません。ありがとうございます。

4

1 に答える 1

0

ばかげた質問ですが。このブログで答えを見つけました。

テスト ケースのライフサイクルは基本的にconstructionsetUp()tests runとおりtearDown()ですdestruction。このsetUp()メソッドは、すべての特定のテストで使用される一般的な初期化を行うために使用されます。テストケースで実行される各テストは、メソッド名が「test」で始まる独自のメソッドとして実装されます。次に、このtearDown()メソッドを使用して、メソッドによって取得されたすべてのリソースを初期化解除しますsetUp()。特定の各テストには、「test」で始まる独自のメソッドがあります。「test」メソッド名のプレフィックスは大文字と小文字が区別されます。

私の最初の質問は、誰もテスト メソッドを呼び出していないため、テスト メソッドがどのように実行されたかということでした。しかし、上記のテストから、識別されるように、各メソッドはテストを開始する必要があります。

于 2012-11-20T23:19:52.677 に答える