[英]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的測試工作正常。 誰能幫忙或有任何建議嗎? 謝謝。
一種方法是使用機械手測試框架。 另請參閱使用ActivityInstrumentationTestCase2在android actionbar單元測試中的答案
嘗試添加
this.activity.getFragmentManager().executePendingTransactions();
后
actionBar.setSelectedNavigationItem(1);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.