Android、Java、Web系、Linux、マラソン等の備忘録

2013/01/20

JUnitからAlertDialog.Builderのボタンを押す

0 件のコメント
たぶんやり方としておかしいというかスマートじゃない思うんですけど、テストやるのに結果として押せりゃいいんだよ押せりゃ...
ということで、眠いし、深く検証しないままメモしておきます。

テストケースは、ActivityInstrumentationTestCase2を継承したもので、画面にダイアログが表示されている状態で、以下のコードでボタン押下を確認しました。
[PositiveButtonを押下する]
        // PositiveButtonボタン押下
        sendKeys(KeyEvent.KEYCODE_DPAD_DOWN, KeyEvent.KEYCODE_DPAD_RIGHT);
        sendKeys(KeyEvent.KEYCODE_DPAD_DOWN, KeyEvent.KEYCODE_DPAD_CENTER);

[NegativeButtonを押下する]
        //NegativeButtonボタン押下
        sendKeys(KeyEvent.KEYCODE_DPAD_DOWN, KeyEvent.KEYCODE_DPAD_CENTER);


テストケースだと一瞬なので、Thread.sleepとか入れると目視でクリックされるのが確認できると思います。

※追記(2013/01/29):ただしダイアログ内にほとんど中身(View)がない場合に限る。中身があって、別のViewをタッチしてしまう場合は、KEYCODE_DPAD_RIGHTやKEYCODE_DPAD_LEFTなど、いくつかのキーを送信すればOKボタンまでフォーカスを移動させることができ、最後にsendKeys(KeyEvent.KEYCODE_DPAD_DOWN, KeyEvent.KEYCODE_DPAD_CENTER);を実行するとOKボタンを押せるみたい

0 件のコメント :

コメントを投稿