2017-06-29 4 views
2

私は2つのDatePickerのコントロールといくつかのテキスト入力とボタンでアクティビティを持っています。私はエスプレッソでいくつかのシナリオを試してみたい:AndroidのエスプレッソのフレームワークでDatePickerのカレンダーの値を確認してください

  1. 最初にDatePickerに設定してください。
  2. いくつかのテキストとクリックボタンを設定すると、ビジネスロジックがトリガーされ、日付が秒に設定されますDatePicker
  3. 秒の確認の日付DatePicker

第3ステップでは、onView(withId(R.id.end_date_picker)).check(matches(withText("25-01-2017")));のようにしたいと思います。 withTextの代わりにDatePickerのカレンダー/日付の値を確認するにはどうすればよいですか?助けてくれてありがとう。あなたは二つのこと必要と欲しいものを達成するために

答えて

2

:日付ピッカーに最善の方法を日付を設定するには

はエスプレッソPickerActionsを利用することで、私は彼らherehereについて書いたが、いくつかの部分をコピーします

PickerActions.setDate方法を利用することです最も簡単な方法:この作業を取得するには

onView(withId(R.id.start_date_picker)).perform(PickerActions.setDate(2017, 6, 30)); 

、あなたはYでcom.android.support.test.espresso:espresso-contribライブラリを追加する必要があり、そこから私の答えの私のgradleファイルと多分いくつかのライブラリを除外してください、あなたがそれに問題があれば上記の私のリンクされた答えをチェックしてください。

DatePickerの日付を確認するには、カスタムマッチャーを使用する必要があると思います。

あなたのコードに、このメソッドを追加することができます

onView(withId(R.id.end_date_picker)).check(matches(matchesDate(2017, 6, 30))); 
:あなたは、このような日付を確認するために使用することができます

public static Matcher<View> matchesDate(final int year, final int month, final int day) { 
    return new BoundedMatcher<View, DatePicker>(DatePicker.class) { 

     @Override 
     public void describeTo(Description description) { 
      description.appendText("matches date:"); 
     } 

     @Override 
     protected boolean matchesSafely(DatePicker item) { 
      return (year == item.getYear() && month == item.getMonth() && day == item.getDayOfMonth()); 
     } 
    }; 
} 

関連する問題