アクティビティでのトースト メッセージの表示をテストする方法を知っている人はいますか?
OPがこの質問に投稿したものと同様のコードを使用して、あるアクティビティから次のアクティビティへのプログラムフローをテストしています。また、特定のアクティビティに関するトースト メッセージをテストできるようにしたいと考えています。
アクティビティでのトースト メッセージの表示をテストする方法を知っている人はいますか?
OPがこの質問に投稿したものと同様のコードを使用して、あるアクティビティから次のアクティビティへのプログラムフローをテストしています。また、特定のアクティビティに関するトースト メッセージをテストできるようにしたいと考えています。
アクティビティでのトーストメッセージの表示をテストする方法を知っている人はいますか?
できません-ごめんなさい。つまり、Androidに「ねえ、トーストは表示されていますか?そしてそれはどのように見えますか?」と尋ねる方法はありません。
うーん、実際にトーストの外観をテストする可能性があります。Toast のサブクラス (MyOwnToast など) を作成し、Toast の代わりにこれをプログラムで使用するだけです。このサブクラスでは、show() メソッドを上書きして、Toast が表示されていることを通知できます。
さらに、Toast にアクセスできる ToastDatabase シングルトンのようなもので、show() メソッド内に Toast を格納できます。これは、Toast が表示されて破棄された後も表示されます (Toast でこれをテストしていませんが、私はよくそうします)それらが破棄された後、さらなるテストのためにそれらを利用できるようにしておくための活動の結果の意図を持っています - したがって、Toasts でこれを実装することは問題ありません)。
注意: Toast オブジェクトまたは ToastDatabase の対応するビューのクローンを作成する必要がある場合があります。これは、Toast が破棄された後に null になる可能性があるためです。お役に立てれば!
私はチェックします、次の作品:
if(someToast == null)
someToast = Toast.makeText(this, "sdfdsf", Toast.LENGTH_LONG);
boolean isShown = someToast.getView().isShown();
メッセージでトーストが表示されたことを確認できました
ShadowToast.showedToast("expected message")
カスタムトーストを使用している場合
ShadowToast.showedToast("expected message", R.id.yourToastId)
私はそれを次のように使用しています:
wait_for_text("Notification message to be verified", timeout: 30)
これは、目的を部分的に果たす別の方法です。