从我的活动中,我执行 startActivityForResult(MediaStore.ACTION_IMAGE_CAPTURE),
然后我进入内置相机活动(在本例中为模拟器)。
当我现在这样做时:
“solo.clickOnButton(0);”
在我的测试用例中,它没有找到任何按钮(为 index=0 找到 null)。
如何编写使用内置摄像头拍照的 Solo/Robotium 测试用例?
根据 Robotium 文档,您不能这样做,因为这跨越了两个应用程序(您的一个和默认的相机活动)。请参阅http://code.google.com/p/robotium/wiki/QuestionsAndAnswers
您要么需要在包中编写自己的相机实现,要么编写两个测试应用程序
希望这可以帮助 :)
很抱歉撞到这个...
我刚刚将我制作/使用的相机存根放在 Play 商店中......认为可能对您/其他人在自动化测试中测试相机有用:)
https://play.google.com/store/apps/details?id=com.hitherejoe.CameraStub&hl=en
你想要达到的目标绝对是可行的。您正在尝试通过系统内置功能来做到这一点。这里的问题是用户应该拍照并确认它是有效的。然后,结果(图像 URL)被带回您的活动。所以,它不是机器人。
另一种方法是使用 Android 为您提供对相机的完全控制的事实
android.hardware.Camera;
这绝对是要求更高的方法。但是,如果您使用 Android 安装中的现有示例作为指导
android-sdk-windows\samples\android-8\ApiDemos\src\com\example\android\apis\graphics\CameraPreview.java
它应该是可以实现的。不要忘记在您的清单中声明权限,如Camera
SDK 文档中所述。