ちょっとハマったのでメモ。Android 1.5 SDKでの話。
ActivityInstrumentationTestCase2などを使いテストケースを書いていると、キー操作をよく扱う。ダイアログの選択など。
その時、SendKeysを使ってキー情報を送るのだが、Sendkeysは二通りの引数を持つ事ができる。
- SendKeys("DPAD_DOWN DPAD_CENTER");
- SendKeys(KeyEvent.KEYCODE_DPAD_DOWN, KeyEvent.KEYCODE_DPAD_CENTER);
何かと便利なので前者の方式で作成していたのだが、キー入力タイミングの同期がちゃんと取れないらしく、キー入力の結果、テストが合格したり、不合格だったりと何かと不安定になる。
Androidソースを調べてみると、前者の方法は全然使われておらず、後者の方法しか使われてなかった。ので、後者の方法に書き換えたところ、テストに伴うキー入力が安定し、常に同じレスポンスが得られるようになった。
って事で、Testでキー操作を行いたい場合はSendKeys(KeyEvent.KEYCODE_DPAD_DOWN, KeyEvent.KEYCODE_DPAD_CENTER)みたく書きましょう、という事で。
Google Androidアプリケーション開発入門 画面作成からデバイス制御まで――基本機能の全容 | |
![]() | 日経BP社 2009-06-04 売り上げランキング : 2439 おすすめ平均 ![]() ![]() ![]() ![]() Amazonで詳しく見る by G-Tools |