在JavaDocs中找不到关于如何使用Android测试来获取菜单中SearchView进行测试的示例或帮助。有办法吗?

我想做一个.setQuery("Foo", true)或等效项来测试我的应用程序中的搜索。那怎么办?

最佳答案

According to this documentation


  注意:尽管可以折叠操作视图,但是我们建议
  如果您的操作视图包含SearchView,则始终将其折叠。
  另请注意,某些设备提供了专用的SEARCH按钮和
  如果用户按下
  搜索按钮。只需覆盖您活动的onKeyUp()回调
  方法,侦听KEYCODE_SEARCH事件,然后调用
  expandActionView()。


如果已为KEYCODE_SEARCH事件扩展了serach视图,则应该可以通过使用工具注入事件来进行测试。

public void testSearch() {
   Instrumentation instrumentation = getInstrumentation();
   instrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_SEARCH);
   instrumentation.sendCharacterSync(KeyEvent.KEYCODE_F);
   instrumentation.sendCharacterSync(KeyEvent.KEYCODE_O);
   instrumentation.sendCharacterSync(KeyEvent.KEYCODE_O);
   //Assert here for whatever you want.
}


确保清单中有注入权限。

关于java - 如何测试ActionBar中的SearchView?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11282167/

10-09 06:40