我想创建一个测试(类似于 robots/selenium 测试)来测试我的键盘服务在不同配置中的布局。
由于键盘作为服务运行,robotium 无法直接对其进行测试。相反,我在服务中创建了一个活动来测试键盘。键盘在单独的窗口中运行,因此机器人无法看到它的视图。
我的问题是:是否有能够测试输入法的框架?
不能确定,但您可能想尝试 Nativedriver ( http://code.google.com/p/nativedriver/ ) 的功能,我发现它比 Robotium 更灵活,虽然有点难建立。
您确实需要server-instrumentation.jar
在您的应用程序中包含该库以及此处概述的其他一些必需品:http ://code.google.com/p/nativedriver/wiki/AndroidMakeAnAppTestable 。您可以轻松地分叉服务器仪表代码,以增加其功能的丰富性。我发现自己这样做是为了简单的事情,比如通过提示而不是资源 ID 更容易找到文本框。 如果您发现内置功能不允许测试您的键盘,请在此处添加该功能,然后为我们所有人提交代码!
我非常喜欢 Nativedriver 方法仅使用 vanilla JUnit 测试而不是 Android JUnit 测试的方式,它为您提供了许多与 JUnit 配合良好的其他工具(例如 Cucumber 的 java 端口),但不适合 Android JUnit 测试模型。
您可能会像我一样发现,在基于 Nativedriver 的 JUnit 测试用例结束时没有终止活动这一事实很好,尤其是当您正在编写测试并试图记住接下来要做什么时你的用户界面。
您可以尝试按该位置,因为这是显示的位图。这更像是您开发的方法 UI。