たぶんやり方としておかしいというかスマートじゃない思うんですけど、テストやるのに結果として押せりゃいいんだよ押せりゃ...
ということで、眠いし、深く検証しないままメモしておきます。
テストケースは、ActivityInstrumentationTestCase2を継承したもので、画面にダイアログが表示されている状態で、以下のコードでボタン押下を確認しました。
[PositiveButtonを押下する]
[NegativeButtonを押下する]
テストケースだと一瞬なので、Thread.sleepとか入れると目視でクリックされるのが確認できると思います。
※追記(2013/01/29):ただしダイアログ内にほとんど中身(View)がない場合に限る。中身があって、別のViewをタッチしてしまう場合は、KEYCODE_DPAD_RIGHTやKEYCODE_DPAD_LEFTなど、いくつかのキーを送信すればOKボタンまでフォーカスを移動させることができ、最後にsendKeys(KeyEvent.KEYCODE_DPAD_DOWN, KeyEvent.KEYCODE_DPAD_CENTER);を実行するとOKボタンを押せるみたい
ということで、眠いし、深く検証しないままメモしておきます。
テストケースは、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ボタンを押せるみたい
コメント
コメントを投稿