Android 如何使用espresso testcase库单击工具栏中的菜单选项

Android 如何使用espresso testcase库单击工具栏中的菜单选项,android,unit-testing,android-instrumentation,Android,Unit Testing,Android Instrumentation,我想在工具栏中测试“设置”选项。单击“设置”选项,它将启动新活动,并从工具栏标题名称中确认它是否已成功启动。 代码如下:- java代码 @RunWith(AndroidJUnit4.class) @SmallTest public class MainActivityTest { @Rule public ActivityTestRule<MainActivity> mainActivityActivityTestRule = new ActivityTestRu

我想在工具栏中测试“设置”选项。单击“设置”选项,它将启动新活动,并从工具栏标题名称中确认它是否已成功启动。 代码如下:- 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)));

    }

请帮助我,我该如何实现这一点。

我相信这个答案是恰当的 对这个问题:[

在你的情况下,你应该这样写:

// 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()));
android.support.test.espresso.NoMatchingViewException: No views in hierarchy found matching: with id: com.xyz.android.control:id/toolbar
// 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()));