Issue
I have a custom viewpager (with swiping disabled for reasons) working with a tablayout. The content changes based on which tab is selected. I want to test this using espresso: 1) Click on a particular tab 2) Check some data in a particular page of the tab How can I do that. I am a novice to espresso
Solution
There are several ways of doing this, an easy one is to select the element by the tab title, I use this code:
Matcher<View> matcher = allOf(withText("TAB TITLE"),
isDescendantOfA(withId(R.id.customTab)));
onView(matcher).perform(click());
SystemClock.sleep(800); // Wait a little until the content is loaded
You only have to adapt the matcher to your layout. Then, check the content.
For example:
onView(withId(R.id.someId)).check(matches(isCompletelyDisplayed()));
or:
onView(withText(R.string.someText)).check(matches(isCompletelyDisplayed()));
You can find examples here in the Specifying a View Matcher section: http://developer.android.com/intl/es/training/testing/ui-testing/espresso-testing.html
If you are using a RecyclerView to show the content of the tabs have a look at this: Espresso RecyclerView inside ViewPager
Answered By - jeprubio
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.