我正在编写一些在物理Android设备上运行的黑盒验收测试。被测应用程序(AUT)依赖于相机的预览。具体来说,它使用setOneShotPreviewCallback
类的android.hardware.Camera
方法。我正在寻找一种方法来注入假预览图片来测试应用程序的行为。
我以为我可以通过让测试代码调用AUT的PreviewCallback
对象来欺骗Camera对象,但不幸的是,实例变量mPreviewCallback
对于Camera对象是私有的,因此我的测试代码没有获取对PreviewCallback
对象的引用的方法。
我想到的另一种方法是将Message
发送到相机的EventHandler
,但字段mEventHandler
再次是私有的,因此测试代码无法获取对处理程序。
答案 0 :(得分:0)
请参阅Android mock Camera和How to mock a picture in Android Emulator Camera?这两种方法都不需要root设备,但需要更改应用程序。我相信即使您无法访问源代码,也可以通过反编译dex来进行必要的修改。