因为像这样的代码,Espresso测试变得很烦人:
currentSailBoat = (SailBoat) boaterator.next();
ViewInteraction boatNameInteraction = onView(withId(R.id.txt_boat_name_edit));
ViewInteraction boatNameInteraction = onView(withId(R.id.txt_boat_name_edit));
boatNameInteraction.perform(closeSoftKeyboard());
boatNameInteraction.perform(clearText());
boatNameInteraction.perform(typeText(currentSailBoat.getBoatName()));
出现了以下错误
运行时异常
原因:java.lang.RuntimeException: 操作不会执行,因为目标视图不符合以下一个或多个约束条件: (在屏幕上向用户显示且可以从类:class android.widget.EditText分配) 目标视图:“TextView{id=2131624096, res-name=txt_boat_name_edit, visibility=VISIBLE, width=135, height=37, has-focus=true, has-focusable=true, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=true, is-focusable=true, is-layout-requested=false, is-selected=false, root-is-layout-requested=false, has-input-connection=true, editor-info=[inputType=0x10001 imeOptions=0x8000005 privateImeOptions=null actionLabel=null actionId=0 initialSelStart=0 initialSelEnd=0 initialCapsMode=0x0 hintText=null label=null packageName=null fieldId=0 fieldName=null extras=null ], x=8.0, y=8.0, text=Boat Name, input-type=65537, ime-target=true, has-links=false}”
我已经明白,由于我的 EditText 在屏幕上可见,问题在于我的 EditText 不是"可以从类: class android.widget.EditText 分配",所以我的问题是,什么意思是我的 EditText 不可分配到android.widget.EditText?如何使我的 EditText 可分配?