我正在尝试编写Espresso测试,该测试将在自定义SearchView中键入文本。自定义SearchView位于:
https://github.com/MiguelCatalan/MaterialSearchView/tree/develop/library/src/main/res/layout
我在我的MainActivity中使用它。如果我直接拨打' typeText'在这个SearchView上,它抛出一个错误,因为我实际上需要从这个SearchBar获取EditText。
EditText位于search_view.xml
中我认为Espresso命令应如下所示:
onView(get EditText from SearchView).perform(typeText("chicken"));
我应该如何获得EditText引用?
答案 0 :(得分:1)
没关系,我找到了解决方案。
我在单元测试中得到了我的'搜索'视图,然后我开始在其子项中循环。
当我找到EditText时,我调用了onView。
这是代码。希望它会帮助某人:
search = (SearchBox) mActivityRule.getActivity().findViewById(R.id.searchbox);
for( int i = 0; i < search.getChildCount(); i++ )
if( search.getChildAt( i ) instanceof EditText) {
onView(withId(search.getChildAt(i).getId())).perform(typeText("soup" + '\n'));
}