2014年2月17日月曜日

Espresso でオーバーフローメニューを開く

こういうメニュー定義だと、オーバーフローメニューになります。
  1. <menu xmlns:android="http://schemas.android.com/apk/res/android" >  
  2.   
  3.     <item  
  4.         android:id="@+id/action_settings"  
  5.         android:orderInCategory="100"  
  6.         android:showAsAction="never"  
  7.         android:title="@string/action_settings"/>  
  8.   
  9. </menu>  
このメニューをクリックするには、Espresso で用意されている openActionBarOverflowOrOptionsMenu()を使います。
  1. import static com.google.android.apps.common.testing.ui.espresso.Espresso.openActionBarOverflowOrOptionsMenu;  
  2. ...  
  3.   
  4. public class MainActivityUITest extends  
  5.         ActivityInstrumentationTestCase2<MainActivity> {  
  6.   
  7.     public MainActivityUITest() {  
  8.         super(MainActivity.class);  
  9.     }  
  10.   
  11.     @Override  
  12.     protected void setUp() throws Exception {  
  13.         super.setUp();  
  14.         getActivity();  
  15.     }  
  16.   
  17.     public void testLaunchSetting() {  
  18.         // オーバーフローメニューを開く  
  19.         openActionBarOverflowOrOptionsMenu(getInstrumentation()  
  20.                 .getTargetContext());  
  21.         // 設定メニューをクリック  
  22.         onView(withText(R.string.action_settings)).perform(click());  
  23.   
  24.         // TODO 設定画面のチェック  
  25.     }  
  26. }