【发布时间】:2014-02-23 18:48:24
【问题描述】:
我正在尝试为在选项卡模式下使用 ActionBar 的 Activity 编写单元测试。 在我的 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 的测试工作正常。 任何人都可以请帮助或有任何建议吗? 谢谢。
【问题讨论】:
标签: android unit-testing android-actionbar fragment