2016-03-23 12 views
1

ツールバーの "設定"オプションをテストします。 「設定」オプションをクリックすると、新しいアクティビティが起動し、ツールバーのタイトル名から、起動が正常に開始されたかどうかを確認します。 は、以下のコードである: - Javaコードエスプレッソテストケースライブラリを使用してツールバーのメニューオプションをクリックする方法

@RunWith(AndroidJUnit4.class) 
@SmallTest 
public class MainActivityTest { 

    @Rule 
    public ActivityTestRule<MainActivity> mainActivityActivityTestRule = new ActivityTestRule<>(MainActivity.class); 

    @Before 
    public void intialize(){ 

    } 

    @Test 
    public void testCanGoToSettings() { 
     onView(withId(R.id.toolbar)) 
       .perform(navigateTo(R.id.action_settings)); 
     String expectedNoStatisticsText = InstrumentationRegistry.getTargetContext() 
       .getString(R.string.action_settings); 
     onView(withId(R.id.toolbarSettings)).check(matches(withText(expectedNoStatisticsText))); 

    } 

}

XMLコード

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/home_menu"> 
    <item 
     android:id="@+id/action_settings" 
     android:orderInCategory="100" 
     android:title="@string/action_settings" 
     app:showAsAction="never" /> 
</menu> 

私はエラーの下に取得しています。

android.support.test.espresso.NoMatchingViewException: No views in hierarchy found matching: with id: com.xyz.android.control:id/toolbar 

私はこれをどのように実装できますか。

答えて

2

私はこの回答が、この質問に対して に充当されていると信じています。[https://stackoverflow.com/a/36656925/2688351][1]

// Click menu 
openActionBarOverflowOrOptionsMenu(getInstrumentation().getTargetContext()); 

// Choose item "Settings" 
onView(withText(mActivity.getString(R.string.action_settings))).perform(click()); 

// Check that settings activity was opened 
onView(withText(mActivity.getString(R.string.some_settings_item))).check(matches(isDisplayed())); 
:あなたのケースでは

あなたはこのような何かを書く必要があります

関連する問題