私は物理的なアンドロイドデバイス上で動作するいくつかのブラックボックスの受け入れテストを書いています。テスト中のアプリケーション(AUT)は、カメラのプレビューに依存します。具体的には、android.hardware.Camera
クラスのsetOneShotPreviewCallback
メソッドを使用します。私はアプリの動作をテストするための偽のプレビュー画像を挿入する方法を探しています。Android:テスト目的のために偽のカメラプレビューを入力してください
テストコードでAUTのPreviewCallback
オブジェクトを呼び出すことでCameraオブジェクトをだますことができたと思っていましたが、残念ながらインスタンス変数mPreviewCallback
はCameraオブジェクトのプライベートなのでテストコードには参照がありませんPreviewCallback
オブジェクトです。
もう1つの方法は、EventHandler
にを送信することでしたが、フィールドmEventHandler
はプライベートなので、テストコードはハンドラへの参照を取得できません。
私はこの提案があなたの物理的なデバイスルールを破るかもしれないと思うかもしれませんが、多分genymotionで走っていれば、あなたが望むトリックを達成することができます。 http://www.genymotion.com/features/ – Machinarius
あなたのデバイスは根付いていますか? –
@Machinarius:私はあなたの提案に従っており、ジェノモーションをインストールしました。それはソフトウェアの素晴らしい部分ですが、カメラのプレビューストリームに画像をプログラムで挿入する方法を見つけることができませんでした。これは、ゲノムの唯一のアクションは、私の物理的なウェブカメラのストリームをシミュレートされたカメラに接続することです。私は何か見落としたことがありますか? – lacton