簡體   English   中英

具有選項卡和片段的Android單元測試操作欄

[英]Android unit test actionbar with tabs and fragments

我正在嘗試為在Tab模式下使用ActionBar的Activity編寫單元測試。 在“活動”的選項卡偵聽器中,我正在用另一個片段(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實例,但對selectedNavigationIndex的測試工作正常。 誰能幫忙或有任何建議嗎? 謝謝。

一種方法是使用機械手測試框架。 另請參閱使用ActivityInstrumentationTestCase2android actionbar單元測試中的答案

嘗試添加

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

actionBar.setSelectedNavigationItem(1);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM