web-dev-qa-db-ja.com

Android:ボタンのチェックが有効になっている

アプリのテストに問題があります。エミュレーターでアプリを起動するたびに期待どおりの動作が得られるため、失敗するはずのエスプレッソテストを作成しました。私のテストがあります:

 onView(withText("wrong answer")).perform(click());
 onView(withId(R.id.nextQuestionButton)).check(matches(isEnabled()));

テストを開始しても何も報告されませんが、テキストが「間違った回答」であるラジオボタンをクリックすると、nextQuestionButtonが有効になりますnot

12
サソリ

私が理解していることによると、あなたはそれがこのように機能することを望んでいます:

nextQuestionButton ISが有効になっている場合は、次のアクションを実行します。

  • 「間違った答え」をクリックして、
  • nextQuestionButtonが無効に変更されているかどうかを確認します。

その場合、コードは次のようになります。

onView(withId(R.id.nextQuestionButton)).check(matches(isEnabled()));
onView(withText("wrong answer")).perform(click());
onView(withId(R.id.nextQuestionButton)).check(matches(not(isEnabled())));

Espressoを使用すると、テストでHamcrestマッチャーを使用できます。

Hamcrest 1.3クイックリファレンス

これも確認してください(まだ行っていない場合):

エスプレッソ2.1。エスプレッソチートシートマスター

あなたの投稿のこの断片によると:

テストを開始しても何も報告されませんが、テキストが「間違った答え」であるnextQuestionButtonをクリックしてもradioButtonを有効にしないでください。

これは、次の質問ボタンを無効に設定していないことを意味するため、Espressoはこのテストに合格します。

27
piotrek1543