【发布时间】:2012-07-01 12:58:53
【问题描述】:
我在 JavaDocs 中找不到关于如何使用 Android 测试在菜单中的 SearchView 进行测试的任何示例或帮助。有办法吗?
我想做一个.setQuery("Foo", true) 或等效于在我的应用中测试搜索。怎么可能?
【问题讨论】:
标签: java android testing junit searchview
我在 JavaDocs 中找不到关于如何使用 Android 测试在菜单中的 SearchView 进行测试的任何示例或帮助。有办法吗?
我想做一个.setQuery("Foo", true) 或等效于在我的应用中测试搜索。怎么可能?
【问题讨论】:
标签: java android testing junit searchview
According to this documentation
注意:虽然折叠您的操作视图是可选的,但我们建议 如果包含 SearchView,您总是折叠您的操作视图。 另请注意,某些设备提供专用的 SEARCH 按钮和 如果用户按下 搜索按钮。只需覆盖您的活动的 onKeyUp() 回调 方法,监听 KEYCODE_SEARCH 事件,然后调用 展开ActionView()。
如果您已扩展 KEYCODE_SEARCH 事件的搜索视图,则应该可以通过使用仪器注入事件进行测试。
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.
}
确保您在清单中具有注入权限。
【讨论】:
我认为你可以使用 monkeyrunner 来做到这一点:http://developer.android.com/tools/help/monkeyrunner_concepts.html
【讨论】: