使用Robolectric 3.0+测试抽屉导航项目

问题描述 投票:1回答:2

我是Android开发的新手。我正在开发我的第一个项目,并希望将Robolectric用于我的单元测试。

由于我有点迷失,我的问题很简单:如何在点击Drawer Navigation中的项目时测试正确的行为。我主要是询问如何模拟项目的点击。

提前致谢。

android navigation-drawer robolectric
2个回答
1
投票

您可以使用以下阴影:

ListView lvMenu = (ListView)mMainActivity.findViewById(R.id.lvMenu);
Shadows.shadowOf(lvMenu).performItemClick(0); //click first item 
Shadows.shadowOf(lvMenu).performItemClick(1); //click second item 

0
投票

这是注销MenuItem的示例。

@Before
public void setUp() {
    TestActivity activity = Robolectric.setupActivity(TestActivity.class);
}

@Test
public void onNavigationItemSelected(){
    // logout MenuItem
    activity.onNavigationItemSelected(new RoboMenuItem(R.id.logout));
    verify(presenter).logout();
}

测试活动:

@Override
    public boolean onNavigationItemSelected(MenuItem item) {
        int id = item.getItemId();

        if (id == R.id.logout) {
            presenter.logout();
        }

        DrawerLayout drawer = findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        return true;
    }
© www.soinside.com 2019 - 2024. All rights reserved.