带有选项卡和片段的 Android 单元测试操作栏



>我正在尝试为在选项卡模式下使用操作栏的活动编写单元测试。在我的活动的选项卡侦听器中,我正在用另一个片段替换当前片段(MyListFragment,MyContentFragment)在我的简单单元测试中,我想检查单击相应选项卡时是否显示了正确的片段。

我的单元测试如下所示。

public class TestMyActivity
    extends android.test.ActivityInstrumentationTestCase2<MyActivity>
   @Override
   protected void setUp() throws Exception
   {
       super.setUp();
       this.activity = getActivity();
   }
   @UiThreadTest
   public void testSelectContentTab()
   {
       ActionBar actionBar = this.activity.getActionBar();
       Tab tab_list = actionBar.getTabAt(0);
       Tab tab_content = actionBar.getTabAt(1);
       actionBar.setSelectedNavigationItem(1);
       assertEquals(1, actionBar.getSelectedNavigationIndex());
       FragmentManager fm = this.activity.getFragmentManager();
       Fragment currentFragment =
       fm.findFragmentById(resourceIdOfTab_navigation_fragment_container);
       assertTrue(currentFragment instanceof MyContentFragment);
    }
}

测试失败,因为当前片段不是预期的 MyContentFragment 实例,而是 MyListFragment 的实例,因为所选导航索引的测试工作正常。任何人都可以提供帮助或有任何建议吗?谢谢。

一种方法是使用robotium测试框架。另请参阅使用 ActivityInstrumentationTestCase2 的 android actionbar 单元测试中的答案

尝试添加

this.activity.getFragmentManager().executePendingTransactions();

actionBar.setSelectedNavigationItem(1);

最新更新