アプリケーションで「新しいアイテムの追加」アクティビティをテストしたい。ユーザーがデータを誤って入力してから[OK]ボタンを押すと、トースト(問題リスト)が表示されます。私の質問は、トーストが表示されていないことを確認するにはどうすればよいですか?
ありがとう!
アプリケーションで「新しいアイテムの追加」アクティビティをテストしたい。ユーザーがデータを誤って入力してから[OK]ボタンを押すと、トースト(問題リスト)が表示されます。私の質問は、トーストが表示されていないことを確認するにはどうすればよいですか?
ありがとう!
私はその古い投稿を知っていますが、誰かがこの質問に出くわした場合に備えて、これはより良い方法です:solo.waitForText(text); //ここにトーストテキストを入れます
//wait up to a second for the toast
Date date = new Date();
TextView toast;
long elapsed;
do{
elapsed = new Date().getTime() - date.getTime();
toast = (TextView)solo.getView(android.R.id.message);
}while(elapsed<1000&&toast!=null);
assertEquals(toast.getText().toString(), "Your ticket(s) has been purchased successfully");
これは、トーストが表示されるまでに時間がかかる場合に備えて、AleksandrMによって与えられた回答の拡張です。たとえば、トーストが時間のかかる操作の結果である場合。
を発行するボタンのイベントflag
を処理する変数を割り当てるだけです。これをに設定し、後で、が表示されていないかどうかを確認します。onClick
OK
Toast
flag
true
flag
false
Toast
これは私のために働く
TextView toast = (TextView) solo.getView(android.R.id.message);
assertEquals("toast is not showing", toast.getText().toString(), solo.getString(R.string.error_invalid_phone));