私はエスプレッソでAndroidアプリをテストしています。私はandroidInputType=date
とEditText
ウィジェットを持っています。このコントロールを指で触ると、カレンダーがポップアップして日付を選択できます。Androidでカレンダーから日付を選択するエスプレッソ
エスプレッソでこれを自動化するにはどうすればよいですか?私はその場所のいたるところを見てきました。私はそれを理解できません。 typeText()
はうまくいきません。
私はエスプレッソでAndroidアプリをテストしています。私はandroidInputType=date
とEditText
ウィジェットを持っています。このコントロールを指で触ると、カレンダーがポップアップして日付を選択できます。Androidでカレンダーから日付を選択するエスプレッソ
エスプレッソでこれを自動化するにはどうすればよいですか?私はその場所のいたるところを見てきました。私はそれを理解できません。 typeText()
はうまくいきません。
が、別の質問の範囲内:Recording an Espresso test with a DatePicker - ので、私はそこから私の適応の答えを再投稿:日付ピッカーで日付を設定する
使用このライン:
onView(withClassName(Matchers.equalTo(DatePicker.class.getName()))).perform(PickerActions.setDate(year, monthOfYear, dayOfMonth));
これは、espresso-contrib
のエスプレッソサポートライブラリの一部であるPickerActions
を使用します。そして、あなたが開いたビューをクリックするヘルパーメソッドを作成することができ
androidTestCompile('com.android.support.test.espresso:espresso-contrib:2.2.2') {
exclude group: 'com.android.support', module: 'appcompat'
exclude module: 'support-annotations'
exclude module: 'support-v4'
exclude module: 'support-v13'
exclude module: 'recyclerview-v7'
exclude module: 'appcompat-v7'
}
:、それを使用するあなたのGradleファイル(あなたはサポートライブラリのバージョン不一致によるエラーをコンパイル防ぐために、いくつかの除外を必要とする)には、このようにそれを追加するには日付ピッカーは、日付を設定し、[OK]ボタンをクリックして確認されます。その後、
public static void setDate(int datePickerLaunchViewId, int year, int monthOfYear, int dayOfMonth) {
onView(withParent(withId(buttonContainer)), withId(datePickerLaunchViewId)).perform(click());
onView(withClassName(Matchers.equalTo(DatePicker.class.getName()))).perform(PickerActions.setDate(year, monthOfYear, dayOfMonth));
onView(withId(android.R.id.button1)).perform(click());
}
そして、あなたのテストでこのようにそれを使用します。
TestHelper.setDate(R.id.date_button, 2017, 1, 1);
//TestHelper is my helper class that contains the helper method above
ビルドの競合を避けるために、「2.2.2」を「2.2」に置き換えなければなりませんでした。 – Hack06
あなたはIDとそのデータ型を表示することができます。あなたがクリックする必要のあるカレンダーID。 –
私の答えは他の人にも役立つようです。あなたの問題を解決すれば、それを正しい答えとして受け入れることができればいいでしょうか? – stamanuel