アプリケーションのキーダウンイベントハンドラとキーアップイベントハンドラの間でテストを実行する可能性はありますか?私は2Dアーケードゲームを開発します。gameViewの中のgameThreadは、キープレスを処理します。私はJUnit Androidテストプロジェクトを書いています。 私はthis.sendKeys()について読んだことがありますが、このメソッドはキーを送信してからシグナルを送信するようです。キーダウンイベントとキーアップイベントのテスト
詳細: 私は両方のタッチを使用しています - &タッチ以外の対話。しかし、今私はテストしている
ノンタッチ。だから、私が書いた:
`保護ボイドセットアップが()試験イニシャライズとして例外{
super.setUp();
setActivityInitialTouchMode(false);
_activity = (GameTemplate) getActivity();
<...>
}`
をスロー。
私は、keyUpイベントがうまく処理されていること、を確認するためにテストを書いた:
`公共ボイドtestReturnState(){
this.sendKeys(KeyEvent.KEYCODE_DPAD_LEFT);
_instrumentation.waitForIdleSync();
assertTrue(_logic.getSerp().state().equals(SerpentState.SERP_MOVES_FORWARD));
}`
をそれは[OK]を動作しますが、私は別のテストを書いた:
`公衆空testKeysSimple(){
this.sendKeys(KeyEvent.KEYCODE_DPAD_LEFT);
assertTrue(_logic.getSerp().state().equals(SerpentState.SERP_MOVES_LEFT));
}`
それが失敗し、私はそれが理由の一つで起こると思います2つの理由:
1)プログラムがまだkeyDownイベントを処理していない。
2)プログラムは、両方のKeyDownとkeyUpイベントイベント
私はテストに新たなんだが扱った、多分すべては別の方法でより簡単に行うことができます。私を助けてください。
私はテストで繰り返しを追加しようとしました:
public void testKeysUpDown() {
int t = TSet.skips;
this.sendRepeatedKeys(TSet.keyRepeats,KeyEvent.KEYCODE_DPAD_LEFT);
while(t>0 && !_logic.getSerp().state().equals(SerpentState.SERP_MOVES_LEFT)) t--;
assertTrue(t>0);
}
それも失敗します。
私は今非タッチイベントのテストを書いています。私は私の質問に詳細を持ってきました。上記を参照してください、これは私の最初の質問ですので、ごめんなさい、何か間違っている場合。 – Deepscorn
私は2つのプロジェクトを持っています:ゲームとGameTest、最初の2番目のテスト。あなたのコードは、テスト側で実行することはできませんメソッドです。しかし、おそらく私はいくつかのテストの仕組みを知らない。もしそうなら、教えてください。 – Deepscorn