如何测试ActionBar中的SearchView?

时间:2012-07-01 12:58:54

标签: java android testing junit searchview

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

我想在我的应用中执行.setQuery("Foo", true)或等效测试搜索。怎么办?

2 个答案:

答案 0 :(得分:2)

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. 
}

确保您的清单中有注射权限。

答案 1 :(得分:1)

我认为你可以使用monkeyrunner来做到这一点:http://developer.android.com/tools/help/monkeyrunner_concepts.html