こういうメニュー定義だと、オーバーフローメニューになります。
- <menu xmlns:android="http://schemas.android.com/apk/res/android" >
-
- <item
- android:id="@+id/action_settings"
- android:orderInCategory="100"
- android:showAsAction="never"
- android:title="@string/action_settings"/>
-
- </menu>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/action_settings"/>
</menu>
このメニューをクリックするには、Espresso で用意されている openActionBarOverflowOrOptionsMenu()を使います。
- import static com.google.android.apps.common.testing.ui.espresso.Espresso.openActionBarOverflowOrOptionsMenu;
- ...
-
- public class MainActivityUITest extends
- ActivityInstrumentationTestCase2<MainActivity> {
-
- public MainActivityUITest() {
- super(MainActivity.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- getActivity();
- }
-
- public void testLaunchSetting() {
-
- openActionBarOverflowOrOptionsMenu(getInstrumentation()
- .getTargetContext());
-
- onView(withText(R.string.action_settings)).perform(click());
-
-
- }
- }
import static com.google.android.apps.common.testing.ui.espresso.Espresso.openActionBarOverflowOrOptionsMenu;
...
public class MainActivityUITest extends
ActivityInstrumentationTestCase2<MainActivity> {
public MainActivityUITest() {
super(MainActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
getActivity();
}
public void testLaunchSetting() {
// オーバーフローメニューを開く
openActionBarOverflowOrOptionsMenu(getInstrumentation()
.getTargetContext());
// 設定メニューをクリック
onView(withText(R.string.action_settings)).perform(click());
// TODO 設定画面のチェック
}
}