Oma*_*mar 8 android android-espresso
我正在尝试编写一个简单的测试,我只需单击主要活动中的MenuItem:
public class doTest extends ActivityInstrumentationTestCase2<doActivity> {
public doTest() {
super(doActivity.class);
}
@Override
public void setUp() throws Exception {
super.setUp();
startActivity();
}
private void startActivity() {
Intent intent = new Intent();
setActivityIntent(intent);
getActivity();
}
public void testOne() {
Espresso.openContextualActionModeOverflowMenu();
onView(withId(R.id.create_new)).perform(ViewActions.click());
}
}
Run Code Online (Sandbox Code Playgroud)
测试失败并显示"NoMatchingViewException".如果我将onView行更改为:
onView(withText("Add new")).perform(ViewActions.click());
Run Code Online (Sandbox Code Playgroud)
以下是活动的菜单xml:
<item
android:id="@+id/create_new"
android:title="Add new"
tools:ignore="HardcodedText">
</item>
Run Code Online (Sandbox Code Playgroud)
测试工作.为什么matcher withText会找到视图,而匹配器却找不到?
haf*_*fax 13
是的,这就是Espresso的工作原理.这里的问题是,在Android中,表示菜单项的View没有菜单项的ID.所以onView(withId(X))只是找不到视图.我没有比仅仅使用更好的建议withText().如果您有多个具有相同文本的视图,则使用层次结构进行区分工作.
| 归档时间: |
|
| 查看次数: |
3885 次 |
| 最近记录: |