如何使用Espresso测试Action Bar上的主页按钮?

Jes*_*tro 10 android android-espresso

我已启用主页按钮返回上一个视图.简单地说,这样做:

getActionBar().setDisplayHomeAsUpEnabled(true);

我正在使用最新版本的com.android.support:appcompat-v7:21.0.2.但是,当我使用下面的代码时,它不会抛出异常.

Espresso.onView(ViewMatchers.withId(android.R.id.home)).perform(ViewActions.click()); Espresso.onView(ViewMatchers.withId(R.id.home)).perform(ViewActions.click());

例外:

com.google.android.apps.common.testing.ui.espresso.NoMatchingViewException: No views in hierarchy found matching: with id: is <2131296261> ...

Pet*_*uin 17

当您使用资源中的描述时,可以单击按钮.

onView(withContentDescription(R.string.abc_action_bar_up_description)).perform(click());
Run Code Online (Sandbox Code Playgroud)

适用于appcompat-v7:23.1.1


Chr*_*her 6

我做了以下解决方法:

private String getString(int resId){
    return getInstrumentation().getTargetContext().getString(resId);
}

public void testUI() {   
    onView(withContentDescription(getString(R.string.navigation_drawer_open))).perform(click());
    onView(withContentDescription(getString(R.string.navigation_drawer_close))).perform(click());
}
Run Code Online (Sandbox Code Playgroud)

基本上我使用内容描述属性而不是视图ID.