【问题标题】:android actionbar unit test using ActivityInstrumentationTestCase2使用 ActivityInstrumentationTestCase2 的 android actionbar 单元测试
【发布时间】:2014-04-01 18:24:11
【问题描述】:

我正在为我的 android 应用程序中的操作栏导航编写单元测试。有两个选项卡(主页和提及)。主页选项卡应调出主页片段,提及选项卡应调出提及片段。我正在使用片段管理器获取活动中的当前片段,然后使用 instanceof 来查看它们是否属于正确的类。

 @UiThreadTest
    public void testNavigationBar() {
        assertEquals(ActionBar.NAVIGATION_MODE_TABS, actionBar.getNavigationMode());
        assertEquals(2, actionBar.getNavigationItemCount());

        Tab tab0 = actionBar.getTabAt(0);
        assertNotNull(tab0);
        assertNotNull(tab0.getText());
        assertEquals(mActivity.getBaseContext().getString(R.string.navigation_home), tab0.getText());

        Tab tab1 = actionBar.getTabAt(1);
        assertNotNull(tab1);
        assertNotNull(tab1.getText());
        assertEquals(mActivity.getBaseContext().getString(R.string.navigation_mention),
                tab1.getText());

        FragmentManager sfm = mActivity.getSupportFragmentManager();

        actionBar.selectTab(tab0);
        assertEquals(0, actionBar.getSelectedNavigationIndex());
        Fragment currentFragment = sfm.findFragmentById(R.id.frameContainer);
        assertNotNull(currentFragment);
        assertTrue(currentFragment instanceof HomeTimeLineFragment);

        actionBar.selectTab(tab1);
        assertEquals(1, actionBar.getSelectedNavigationIndex());
        Log.d(tag, String.valueOf(actionBar.getSelectedTab().getText()));
        currentFragment = sfm.findFragmentById(R.id.frameContainer);
        assertNotNull(currentFragment);
        assertTrue(currentFragment instanceof MentionsFragment);
    }

测试失败,因为 currentFragment 仍然是 HomeTimeLineFragment 的实例。顺便说一句,log.d 语句打印出“提及”。因此,在导航栏中肯定选择了提及选项卡。

【问题讨论】:

    标签: android


    【解决方案1】:

    尝试添加

    sfm.executePendingTransactions();
    

    之后

    actionBar.selectTab(tab1);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多