我在JavaDocs中找不到任何关于如何使用Android测试来获取菜单中的SearchView进行测试的示例或帮助。有办法吗?
我想在我的应用中执行.setQuery("Foo", true)
或等效测试搜索。怎么办?
答案 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