android中片段的测试用例

时间:2014-09-15 06:55:20

标签: android-fragments junit android-testing

在我的应用程序中,我在一个活动上有多个片段。现在我想编写一个测试用例来检查这些片段是否正确加载。首先,我传递了一些触摸事件来滚动到一个特定的片段,然后我试图获取这个片段的名称。以下是我的测试用例代码: -

public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity> 
{
    MainActivity mMainActivity;
    ActionBar tactionbar;
    Fragment tFragment;


    public static final int TEST_POSITION = 2;
    private static String mSelection ;
    private int mPos = 0;




    public MainActivityTest()
    {
        super(MainActivity.class);
    }

    protected void setUp() throws Exception
    {
        super.setUp();
        mMainActivity = (MainActivity) getActivity();
        tactionbar = mfoneclay.getActionBar();
    }

    public void testPreConditions()
    {
        assertNotNull(mMainActivity);
        assertNotNull(tactionbar);
    }

    public void testFragmentUI()
     {
        mMainActivity.runOnUiThread(
                 new Runnable(){
                     public void run()
                     {  
                         mMainActivity.getCurrentFocus();

                     }
                 });

        for (int i = 1; i <= TEST_POSITION; i++) 
        {
          this.sendKeys(KeyEvent.KEYCODE_DPAD_RIGHT);
          mPos = tactionbar.getSelectedNavigationIndex();

        }

        this.sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);

        mSelection = (String)tactionbar.getTabAt(mPos).getText();



        String resultText = "Exclusive";

        assertEquals(resultText,mSelection);

      }

}

在这里,&#34;独家&#34;是我通过触摸事件导航到的标签之一的名称。现在,在运行测试用例时,我可以看到它正确导航到&#34; Exclusive&#34;片段,但结果显示msection变量的值作为活动的名称而不是片段名称。我做错了什么?

1 个答案:

答案 0 :(得分:0)

得到了解决方案。使用错误的组件来获取片段对我来说是如此愚蠢。事实证明,我必须使用&#34; ViewPager&#34;获取片段。