レコーダーは、録音後すぐに実行できないコードを生成します。DatePickerを使用したエスプレッソテストの録音
なぜなら、録音中に年をタップすると、スピナーがポップアップしてスクロールして、その年の1つを選択するからです。レコーダーはスクロールをキャプチャしません。
Xcodeでは、Xcodeでアイテムにスクロールするメソッドが追加されました。エスプレッソに似たものを見つけることができませんでした。 (Androidのメーカー2.3を使用する。)
レコーダーは、録音後すぐに実行できないコードを生成します。DatePickerを使用したエスプレッソテストの録音
なぜなら、録音中に年をタップすると、スピナーがポップアップしてスクロールして、その年の1つを選択するからです。レコーダーはスクロールをキャプチャしません。
Xcodeでは、Xcodeでアイテムにスクロールするメソッドが追加されました。エスプレッソに似たものを見つけることができませんでした。 (Androidのメーカー2.3を使用する。)
は、私は長い時間でレコーダーを使用し、代わりに手で私のテストを書いたので、この答えはあなたに助けであるかどうかわからないしていません。
私は日付ピッカーで日付を設定するには、この行を使用します。
onView(withClassName(Matchers.equalTo(DatePicker.class.getName()))).perform(PickerActions.setDate(year, monthOfYear, dayOfMonth));
PickerActions
は特別なエスプレッソサポートライブラリ内にある - espresso-contrib
- あなたのGradleファイルには、このようにそれを追加します(私がいくつかの除外を必要とします)サポートライブラリのバージョン不一致によるエラーをコンパイル防ぐ:
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'
}
私は、その後、日付ピッカーを開くボタンをクリックした日付を設定し、[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
待ち、PickerActionsは何ですか?それはTestHelperですか? – Rob
私の悪い、それはピッカーの世話をする余分なライブラリです。私は私の答えを更新しました – stamanuel
okありがとう、レコーダーはとても役に立たないです。痛いです..これを試してみませんか、シンプルにすべき何かをするために神がとても困っています... :( – Rob