2011年12月31日土曜日

ActivityInstrumentationTestCase2 invokeMenuActionSync

AndroidのメニューボタンのJUnit Testを確認しました。
Instrumentation classのinvokeMenuActionSync()の関数を使用します。
invokeMenuActionSync()をコールすることで、メニューボタンを押すテストができます。
テストされる側のコードを紹介します。
メニューを生成する部分のコードです。
menu.add(Menu.NONE, Menu.FIRST, Menu.NONE, "1");
menu.add(Menu.NONE, Menu.FIRST + 1, Menu.NONE, "2");
メニューを押された時のコードです。ID 1のボタンが押された場合に、ログとしてpushed  1と表示するようにします。
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case Menu.FIRST:
     Log.d("test", "pushed 1");
        break;
    case Menu.FIRST + 1:
     Log.d("test", "pushed 2");
        break;
    default:
        break;
    }
    return true;
}   

テストする側のコードを紹介します。ActivityInstrumentationTestCase2のサブクラスです。
メニューボタンを押すコードです。
mInstrumentation.invokeMenuActionSync(mActivity, Menu.FIRST, 0);

こちらのページのようにJUnitを実行してください。 here.
Logcatに以下のように表示されます。
pushed 1

テストされる側のソースコードです。 ここ.
テストする側のソースコードです。 ここ.

0 件のコメント:

コメントを投稿