类android.support.test.espresso.contrib.RecyclerViewActions源码实例Demo

下面列出了怎么用android.support.test.espresso.contrib.RecyclerViewActions的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: ChipsLayoutManager   文件: ColumnTest.java
@Test
public void rotate_LMHasItems_firstItemNotChanged() throws Exception {
    //arrange
    recyclerView.perform(RecyclerViewActions.scrollToPosition(18));
    InstrumentalUtil.waitForIdle();

    int expected = layoutManager.findFirstVisibleItemPosition();
    //act
    rotateAndWaitIdle();
    int actual = layoutManager.findFirstVisibleItemPosition();
    //assert
    assertNotEquals(-1, expected);
    assertNotEquals(-1, actual);
    assertEquals("first visible positions before and after rotation doesn't match", expected, actual);
    System.out.println("first visible position = " + actual);

    resetToInitialAfterRotate();
}
 
源代码2 项目: ChipsLayoutManager   文件: ColumnTest.java
@Test
public void gapsNormalization_OnLastRowDeleted_PaddingStaySame() throws Exception {
    //arrange
    {
        items.remove(39);
        items.remove(38);
        items.remove(37);
        activity.runOnUiThread(() -> activity.initialize());
        InstrumentalUtil.waitForIdle();
    }
    recyclerView.perform(RecyclerViewActions.scrollToPosition(36));
    //act
    recyclerView.perform(actionDelegate((uiController, recyclerView) -> items.remove(36)),
            notifyItemRemovedAction(36));
    //assert
    recyclerView.check(matches(atPosition(29, rvPaddingMatcher())));
}
 
源代码3 项目: ChipsLayoutManager   文件: RowTest.java
@Test
public void scrollBy_LastItemInLastRowHasSmallSize_scrolledCompletelyToBiggestItemSize() throws Exception {
    //arrange
    {
        items.remove(39);
        items.remove(37);
    }
    activity.runOnUiThread(() -> activity.initialize());
    InstrumentalUtil.waitForIdle();

    //act
    recyclerView.perform(RecyclerViewActions.scrollToPosition(37),
            scrollBy(0, -200),
            scrollBy(0, 200));


    //assert
    recyclerView.check(matches(atPosition(36, rvPaddingMatcher())));
}
 
源代码4 项目: ChipsLayoutManager   文件: RowTest.java
@Test
public void rotate_LMHasItems_firstItemNotChanged() throws Exception {
    //arrange
    recyclerView.perform(RecyclerViewActions.scrollToPosition(7));
    InstrumentalUtil.waitForIdle();

    int expected = layoutManager.findFirstVisibleItemPosition();
    //act
    rotateAndWaitIdle();
    int actual = layoutManager.findFirstVisibleItemPosition();
    resetToInitialAfterRotate();

    //assert
    assertNotEquals(-1, expected);
    assertNotEquals(-1, actual);
    assertEquals("first visible positions before and after rotation doesn't match", expected, actual);
    System.out.println("first visible position = " + actual);
}
 
源代码5 项目: ribot-app-android   文件: CheckInActivityTest.java
@Test
public void checkInAtVenueSuccessful() {
    main.launchActivity(null);
    int venuePosition = 3;
    Venue venue = mVenues.get(venuePosition);
    CheckIn checkIn = MockModelFabric.newCheckInWithVenue();
    checkIn.venue = venue;
    doReturn(Observable.just(checkIn))
            .when(component.getMockDataManager())
            .checkIn(CheckInRequest.fromVenue(venue.id));

    onView(withId(R.id.recycler_view_venues))
            .perform(RecyclerViewActions.actionOnItemAtPosition(venuePosition, click()));
    onView(allOf(withId(R.id.image_venue_tick), isDisplayed()))
            .check(matches(isDisplayed()));
}
 
源代码6 项目: ribot-app-android   文件: MainActivityTest.java
private void checkRibotDisplayOnRecyclerView(List<Ribot> ribotsToCheck) {
    for (int i = 0; i < ribotsToCheck.size(); i++) {
        onView(withId(R.id.recycler_view_team))
                .perform(RecyclerViewActions.scrollToPosition(i));
        Ribot ribot = ribotsToCheck.get(i);
        CheckIn checkIn = ribot.latestCheckIn;
        if (checkIn != null) {
            Encounter encounter = checkIn.latestBeaconEncounter;
            String expectedLocationName = encounter == null ? checkIn.getLocationName() :
                    encounter.beacon.zone.label;
            onView(withText(expectedLocationName))
                    .check(matches(isDisplayed()));
            onView(withText(ribot.profile.name.first))
                    .check(matches(isDisplayed()));
        }
    }
}
 
源代码7 项目: friendly-plans   文件: ChildListActivityTest.java
@Test
public void whenChildIsRemovedExpectChildIsNotOnTheList() {

    final int testedChildPosition = 5;
    onView(withId(R.id.rv_child_list))
            .perform(RecyclerViewActions
                    .actionOnItemAtPosition(testedChildPosition,
                            new ViewClicker(R.id.id_remove_child)));
    onView(withText(R.string.child_removal_confirmation_positive_button)).perform(click());
    onView(withId(R.id.rv_child_list)).perform(scrollToPosition(testedChildPosition));
    onView(withRecyclerView(R.id.rv_child_list)
            .atPosition(testedChildPosition))
            .check(matches(
                    not(hasDescendant(withText(EXPECTED_FIRST_NAME + " " + EXPECTED_LAST_NAME
                            + testedChildPosition)))));
}
 
源代码8 项目: friendly-plans   文件: ChildListActivityTest.java
@Test
public void whenOtherChildIsSelectedActiveExpectPreviousActiveChildNoLongerActiveInDB() {
    final int firstTestedChildPosition = 5;
    final int secondTestedChildPosition = 6;
    closeSoftKeyboard();
    onView(withId(R.id.rv_child_list))
            .perform(RecyclerViewActions
                    .actionOnItemAtPosition(firstTestedChildPosition, click()));
    onView(withId(R.id.id_set_active_child)).perform(click());
    assertThat(childRepository.getByIsActive().size(), is(1));
    assertThat(childRepository.getByIsActive().get(0).getSurname(),
            is(EXPECTED_LAST_NAME + firstTestedChildPosition));

    onView(withId(R.id.button_addRemoveChild)).perform(scrollTo()).perform(click());
    closeSoftKeyboard();
    onView(withId(R.id.rv_child_list))
            .perform(RecyclerViewActions
                    .actionOnItemAtPosition(secondTestedChildPosition, click()));
    onView(withId(R.id.id_set_active_child)).perform(click());
    assertThat(childRepository.getByIsActive().size(), is(1));
    assertThat(childRepository.getByIsActive().get(0).getSurname(),
            is(EXPECTED_LAST_NAME + secondTestedChildPosition));
}
 
源代码9 项目: friendly-plans   文件: TaskListActivityTest.java
@Test
public void whenSearchTaskIsRemovedExpectItToBeRemoved(){
    final int testedTaskPosition = 3;

    onView(withId(R.id.menu_search)).perform(typeText(expectedNameTask + testedTaskPosition));
    closeSoftKeyboard();

    onView(withId(R.id.rv_task_list))
            .perform(RecyclerViewActions
                    .actionOnItemAtPosition(0,
                            new ViewClicker(R.id.id_remove_task)));
    onView(withText(R.string.task_removal_confirmation_positive_button)).perform(click());

    onView(withRecyclerView(R.id.rv_task_list)
            .atPosition(0))
            .check(doesNotExist());
    onView(isAssignableFrom(EditText.class)).perform(clearText());
    closeSoftKeyboard();

    onView(withId(R.id.rv_task_list)).perform(scrollToPosition(testedTaskPosition));
    onView(withRecyclerView(R.id.rv_task_list)
            .atPosition(testedTaskPosition))
            .check(matches(hasDescendant(withText(expectedNameTask
                    + (testedTaskPosition + 1)))));
}
 
源代码10 项目: friendly-plans   文件: PlanListActivityTest.java
@Test
public void whenMultiplePlansAreRemovedExpectListRefreshedAfterEachOneOfThem() {
    final int testedFirstTaskPosition = 3;
    final int testedSecondTaskPosition = 4;
    onView(withId(R.id.rv_plan_list))
            .perform(RecyclerViewActions
                    .actionOnItemAtPosition(testedFirstTaskPosition,
                            new ViewClicker(R.id.id_remove_plan)));
    onView(withText(R.string.plan_removal_confirmation_positive_button)).perform(click());
    onView(withId(R.id.rv_plan_list)).perform(scrollToPosition(testedFirstTaskPosition));
    onView(withRecyclerView(R.id.rv_plan_list)
            .atPosition(testedFirstTaskPosition))
            .check(matches(not(hasDescendant(withText(expectedName
                    + testedFirstTaskPosition)))));

    onView(withId(R.id.rv_plan_list))
            .perform(RecyclerViewActions
                    .actionOnItemAtPosition(testedSecondTaskPosition - 1,
                            new ViewClicker(R.id.id_remove_plan)));
    onView(withText(R.string.plan_removal_confirmation_positive_button)).perform(click());
    onView(withId(R.id.rv_plan_list)).perform(scrollToPosition(testedSecondTaskPosition));
    onView(withRecyclerView(R.id.rv_plan_list)
            .atPosition(testedSecondTaskPosition))
            .check(matches(not(hasDescendant(withText(expectedName
                    + testedSecondTaskPosition)))));
}
 
源代码11 项目: friendly-plans   文件: PlanListActivityTest.java
@Test
public void whenSearchPlanIsRemovedExpectItToBeRemoved() {
    final int testedPlanPosition = 5;

    onView(withId(R.id.menu_search))
            .perform(click());
    onView(withId(R.id.menu_search)).perform(typeText(expectedName + testedPlanPosition));
    closeSoftKeyboard();

    onView(withId(R.id.rv_plan_list))
            .perform(RecyclerViewActions
                    .actionOnItemAtPosition(0,
                            new ViewClicker(R.id.id_remove_plan)));
    onView(withText(R.string.plan_removal_confirmation_positive_button)).perform(click());

    onView(withRecyclerView(R.id.rv_plan_list)
            .atPosition(0))
            .check(doesNotExist());
    onView(isAssignableFrom(EditText.class)).perform(clearText());

    onView(withId(R.id.rv_plan_list)).perform(scrollToPosition(testedPlanPosition));
    onView(withRecyclerView(R.id.rv_plan_list)
            .atPosition(testedPlanPosition))
            .check(matches(hasDescendant(withText(expectedName
                    + (testedPlanPosition + 1)))));
}
 
源代码12 项目: zulip-android   文件: RecyclerViewTests.java
@Test
public void checkAfterNarrowToStream() {
    sleep(2000);

    hideToolBar();

    sleep(2000);

    //Scroll to Stream MessageHeaderParent
    onView(withId(R.id.recyclerView)).perform(RecyclerViewActions.scrollToHolder(withMessageHeaderHolder(MessageType.STREAM_MESSAGE)));

    //Perform a click on the subject textView to narrow to the topic
    onView(withFirstId(R.id.instance)).perform(click());

    sleep(4000);
    //Check if all messages belong to this subject
    onView(withId(R.id.recyclerView)).check(ViewAssertions.checkIfBelongToSameNarrow(mActivityTestRule.getActivity()));
}
 
源代码13 项目: zulip-android   文件: RecyclerViewTests.java
@Test
public void sendPrivateMessage() {
    //Wait to make sure the messages are loaded
    sleep(2000);

    onView(withId(R.id.recyclerView)).perform(RecyclerViewActions.scrollToHolder(withMessageHolderAndClick(MessageType.PRIVATE_MESSAGE, R.id.contentView)));
    sleep(1000);

    //Fill message EditText
    ViewInteraction messageInteraction = onView(allOf(withId(R.id.message_et), isDisplayed()));
    messageInteraction.perform(replaceText(testMessagePrivate));

    //Click Send Button
    ViewInteraction imageView = onView(allOf(withId(R.id.send_btn), isDisplayed()));
    imageView.perform(click());

    sleep(2000);

    //Scroll And check the new sent message
    onView(withId(R.id.recyclerView)).perform(RecyclerViewActions.scrollToHolder(withMessageHolder(testMessagePrivate, R.id.contentView)));

    onView(AllOf.allOf(withId(R.id.contentView), withText(testMessagePrivate))).check(matches(isDisplayed()));

    checkIfMessagesMatchTheHeaderParent();
    checkOrderOfMessagesCurrentList();
}
 
源代码14 项目: base_app_android   文件: UsersTest.java
@Test public void _3_Search_User() {
    mediumWait();
    onView(withId(R.id.rv_users)).perform(RecyclerViewActions.scrollToPosition(INDEX_LIST));

    mediumWait();
    onView(withId(R.id.rv_users)).perform(RecyclerViewActions.actionOnItemAtPosition(INDEX_LIST, click()));

    onView(withId(R.id.bt_go_to_search_user)).perform(click());

    onView(withId(R.id.et_name)).perform(click(), replaceText(USERNAME_REFINERIA), closeSoftKeyboard());
    onView(withId(R.id.bt_find_user)).perform(click());
    mediumWait();

    onView(withId(R.id.tv_name)).check(matches(withText(ID_USER_REFINERIA + ":" + USERNAME_REFINERIA)));
    takeScreenShot(USERNAME_REFINERIA);
}
 
源代码15 项目: incubator-weex-playground   文件: BenchmarkTest.java
private long calcTime() {
  BenchmarkActivity benchmarkActivity = mActivityRule.getActivity();
  benchmarkActivity.loadWeexPage("http://30.8.53.163:8080/complicated.js");
  onView(withClassName(Matchers.is(WXRecyclerView.class.getName()))).perform
      (RecyclerViewActions.scrollToPosition(0));
  return benchmarkActivity.getWXInstance().getWXPerformance().screenRenderTime;
}
 
@Test
public void testNotesOperations() {
    //go to the notes list view
    onView(withId(R.id.drawer_layout)).perform(open());
    onView(withText(R.string.nav_security_storage)).perform(click());
    //the list view should be appear
    onView(withId(R.id.notes_list_view)).check(matches(isDisplayed()));
    //click on the add button
    onView(withId(R.id.add_note_btn)).perform(click());
    //details view should be appear
    onView(withId(R.id.note_details_view)).check(matches(isDisplayed()));
    //enter the title & content
    onView(withId(R.id.note_title_field)).perform(typeText(TEST_TITLE), closeSoftKeyboard());
    onView(withId(R.id.note_content_field)).perform(typeText(TEST_CONTENT), closeSoftKeyboard());
    //save
    onView(withId(R.id.save_note_btn)).perform(scrollTo(), click());
    //the list view should show again, and it should have the new note
    onView(withId(R.id.notes_list_view)).check(matches(isDisplayed()));
    onView(withId(R.id.notes_list_view)).check(matches(hasDescendant(withText(TEST_TITLE))));
    //should be able to click on it
    onView(withId(R.id.notes_list_view)).perform(RecyclerViewActions.actionOnItemAtPosition(0, click()));
    //details view should be loaded
    onView(withId(R.id.note_details_view)).check(matches(isDisplayed()));
    onView(withId(R.id.note_title_field)).check(matches(withText(TEST_TITLE)));
    onView(withId(R.id.note_content_field)).check(matches(withText(TEST_CONTENT)));
    //update the title and save
    onView(withId(R.id.note_title_field)).perform(clearText(), typeText(TEST_TITLE_UPDATED), closeSoftKeyboard());
    onView(withId(R.id.save_note_btn)).perform(scrollTo(), click());
    //title should be updated on the list view
    onView(withId(R.id.notes_list_view)).check(matches(hasDescendant(withText(TEST_TITLE_UPDATED))));
}
 
源代码17 项目: ncalc   文件: MarkdownDocumentActivityTest.java
@Test
public void testSearch() {
    onView(withContentDescription(R.string.navigation_drawer_open)).perform(click());

    onView(withText("All functions")).perform(click());
    onView(withId(R.id.edit_search_view)).perform(typeText("ArcSin"));

    onView(withId(R.id.recycler_view)).perform(RecyclerViewActions.actionOnItemAtPosition(0, click()));
    onView(withText("ArcSin")).check(matches(isDisplayed()));

    pressBack();

    onView(withText("Documentation")).check(matches(isDisplayed()));
}
 
源代码18 项目: DebugRank   文件: LanguagesViewBehaviorTests.java
@Test
public void listProgrammingLanguages()
{
    launchActivityWithIntent();

    onView(withId(R.id.loadingProgressBar)).check(matches(not(isDisplayed())));
    onView(withId(R.id.noDataLayout)).check(matches(not(isDisplayed())));

    //load the languages from the test memory repo that's injected by dagger
    final List<ProgrammingLanguage> programmingLanguageList = dataRepo.getTestProgrammingLanguages();

    int position = 0;

    for (final ProgrammingLanguage language : programmingLanguageList)
    {
        onView(withId(R.id.recyclerView))
                .perform(RecyclerViewActions.scrollToPosition(position));

        //make sure the language name is set foreach language in the recyclerview
        onView(withRecyclerView(R.id.recyclerView)
                .atPositionOnView(position, R.id.languageName))
                .check(matches(withText(language.name)));

        //make sure the image loading service was correctly called
        onView(withRecyclerView(R.id.recyclerView)
                .atPositionOnView(position, R.id.languageIcon))
                .check(mockDrawable(language.key));

        position++;
    }
}
 
源代码19 项目: DebugRank   文件: LanguagesViewBehaviorTests.java
@Test
public void viewPuzzlesForLanguage()
{
    launchActivityWithIntent();

    onView(withId(R.id.recyclerView)).perform(RecyclerViewActions.actionOnItemAtPosition(0, click()));

    //make sure clicking on an language navigates to puzzle activity
    intended(hasComponent(new ComponentName(getTargetContext(), PuzzlesActivity.class)));
}
 
源代码20 项目: DebugRank   文件: PuzzlesViewBehaviorTests.java
@Test
public void listPuzzles()
{
    launchActivityWithIntent();

    onView(withId(R.id.loadingProgressBar)).check(matches(not(isDisplayed())));
    onView(withId(R.id.noDataLayout)).check(matches(not(isDisplayed())));

    //load the puzzles from the test memory repo that's injected by dagger
    final List<Puzzle> puzzzleList = dataRepo.getTestPuzzles();

    //start at position 1 for puzzles,  as the language header is at position 0
    int position = 1;

    for (final Puzzle puzzle : puzzzleList)
    {
        onView(withId(R.id.recyclerView))
                .perform(RecyclerViewActions.scrollToPosition(position));

        onView(withRecyclerView(R.id.recyclerView)
                .atPositionOnView(position, R.id.puzzleName))
                .check(matches(withText(puzzle.name)));

        onView(withRecyclerView(R.id.recyclerView)
                .atPositionOnView(position, R.id.points))
                .check(matches(withText(String.format("%d\npoints", puzzle.points))));

        onView(withRecyclerView(R.id.recyclerView)
                .atPositionOnView(position, R.id.minutes))
                .check(matches(withText(String.format("%d:00\nminutes", (int) Math.round(puzzle.time / 60)))));

        onView(withRecyclerView(R.id.recyclerView)
                .atPositionOnView(position, R.id.bugs))
                .check(matches(withText(String.format("%d\nbugs", puzzle.bugs))));

        position++;
    }
}
 
源代码21 项目: DebugRank   文件: PuzzlesViewBehaviorTests.java
@Test
public void viewSolvePuzzle()
{
    launchActivityWithIntent();

    //click second puzzle as first puzzle is already completed
    onView(withId(R.id.recyclerView)).perform(RecyclerViewActions.actionOnItemAtPosition(2, click()));

    //make sure clicking on an language navigates to puzzle activity
    intended(hasComponent(new ComponentName(getTargetContext(), SolveActivity.class)));
}
 
源代码22 项目: DebugRank   文件: SolveViewBehaviorTests.java
@Test
public void checkTestCasesWhenCodeDoesNotCompile()
{
    launchActivityWithIntent();

    staticProps().setCodeCompilesSuccessfully(false);

    //click the fab to start the "upload"
    onView(withId(R.id.fab)).perform(click());

    //click tab to see test case results RecyclerView
    onView(allOf(withText("Compile Error(s)"), isCompletelyDisplayed()))
            .perform(click());

    onView(withId(R.id.recyclerView))
            .perform(RecyclerViewActions.scrollToPosition(0));

    onView(withRecyclerView(R.id.recyclerView)
            .atPositionOnView(0, R.id.testcase))
            .check(matches(withText("Compile Error(s)")));

    onView(withRecyclerView(R.id.recyclerView)
            .atPositionOnView(0, R.id.message))
            .check(matches(withText("compile error")));

    reset();
}
 
源代码23 项目: DebugRank   文件: SolveViewBehaviorTests.java
private void testCaseAt(int position, String testcase, @DrawableRes int resourceId, String input, String output, String expectedOutput, String message)
{
    onView(withId(R.id.recyclerView))
            .perform(RecyclerViewActions.scrollToPosition(position));

    onView(withRecyclerView(R.id.recyclerView)
            .atPositionOnView(position, R.id.testcase))
            .check(matches(withText(testcase)));

    onView(withRecyclerView(R.id.recyclerView)
            .atPositionOnView(position, R.id.passed))
            .check(withDrawable(resourceId));

    onView(withRecyclerView(R.id.recyclerView)
            .atPositionOnView(position, R.id.input))
            .check(matches(withText(input)));

    onView(withRecyclerView(R.id.recyclerView)
            .atPositionOnView(position, R.id.output))
            .check(matches(withText(output)));

    onView(withRecyclerView(R.id.recyclerView)
            .atPositionOnView(position, R.id.expectedOutput))
            .check(matches(withText(expectedOutput)));

    onView(withRecyclerView(R.id.recyclerView)
            .atPositionOnView(position, R.id.message))
            .check(matches(withText(message)));
}
 
源代码24 项目: BrainPhaser   文件: CategorySelectionTest.java
/**
 * Tests that all categories are displayed in the list.
 */
@Test
public void checkAllCategoriesShown() {
    for (Category c : mFakeCategories) {
        Matcher<View> hasDescendantTitle = hasDescendant(withText(c.getTitle()));
        onView(allOf(withId(R.id.select_category_fragment), withEffectiveVisibility(Visibility.VISIBLE)))
            .perform(RecyclerViewActions.scrollToHolder(categoryVH(c.getTitle())))
            .check(matches(hasDescendantTitle));
    }
}
 
源代码25 项目: BrainPhaser   文件: CategorySelectionTest.java
/**
 * Tests that the list ordering is correct (cards with more due challenges are further up in the list)
 */
@Test
public void checkListOrdering() {
    for (int i = 0; i < mPositions.size(); i++) {
        int position = mPositions.keyAt(i);

        String categoryName = mPositions.get(position).getTitle();
        Matcher<View> hasDescendantTitle = hasDescendant(withText(categoryName));

        onView(allOf(withId(R.id.select_category_fragment), withEffectiveVisibility(Visibility.VISIBLE)))
            .perform(RecyclerViewActions.scrollToHolder(categoryVH(categoryName)))
            .check(matches(TestUtils.atPosition(position, hasDescendantTitle)));
    }
}
 
源代码26 项目: Villains-and-Heroes   文件: MainActivityTest.java
@Test
public void testListItemClick() {
    // Check if the list is displayed
    onView(withId(R.id.recycler)).check(matches(isDisplayed()));
    // Perform click on first item
    onView(withId(R.id.recycler)).perform(RecyclerViewActions.actionOnItemAtPosition(0, click()));
}
 
源代码27 项目: ribot-app-android   文件: CheckInActivityTest.java
@Test
public void venuesShow() {
    main.launchActivity(null);

    for (int position = 0; position < mVenues.size(); position++) {
        Venue venue = mVenues.get(position);
        onView(withId(R.id.recycler_view_venues))
                .perform(RecyclerViewActions.scrollToPosition(position));
        onView(withText(venue.label))
                .check(matches(isDisplayed()));
    }
}
 
源代码28 项目: KataSuperHeroesAndroid   文件: MainActivityTest.java
@Test public void opensSuperHeroDetailActivityOnRecyclerViewItemTapped() {
  List<SuperHero> superHeroes = givenThereAreSomeSuperHeroes();
  int superHeroIndex = 0;
  startActivity();

  onView(withId(R.id.recycler_view)).
      perform(RecyclerViewActions.actionOnItemAtPosition(superHeroIndex, click()));

  SuperHero superHeroSelected = superHeroes.get(superHeroIndex);
  intended(hasComponent(SuperHeroDetailActivity.class.getCanonicalName()));
  intended(hasExtra("super_hero_name_key", superHeroSelected.getName()));
}
 
源代码29 项目: base_app_android   文件: DashboardTest.java
@Test public void Open_And_Close_User() {
    onView(withId(R.id.drawer_layout)).perform(actionOpenDrawer());
    mediumWait();

    onView(withId(R.id.rv_menu_items)).perform(RecyclerViewActions.actionOnItemAtPosition(1, click()));

    takeScreenShot("User");
    onView(withId(R.id.drawer_layout)).perform(actionCloseDrawer());
}
 
源代码30 项目: ChipsLayoutManager   文件: ColumnTest.java
@Test
public void scrollBy_LastItemInLastRowHasSmallSize_scrolledCompletelyToBiggestItemSize() throws Exception {
    //arrange

    //act
    recyclerView.perform(RecyclerViewActions.scrollToPosition(36),
            scrollBy(0, -200),
            scrollBy(0, 200));


    //assert
    recyclerView.check(matches(atPosition(39, rvPaddingMatcher())));
}
 
 类所在包
 同包方法