2014-02-23 97 views
0

我想寫一個單元測試的活動,在選項卡模式下使用ActionBar。我在我的活動標籤監聽器 我正在用另一個片段替換當前片段(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); 
    } 
} 

測試失敗,因爲currentFragment並不如預期MyContentFragment的實例,但MyListFragment的althoug測試的selectedNavigationIndex實例工作正常。 任何人都可以請幫忙或有任何建議嗎? 謝謝。

回答

0

嘗試增加

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

actionBar.setSelectedNavigationItem(1);