如何测试与ViewPager的交互

时间:2013-09-09 15:45:05

标签: android android-testing

我正试图在Android应用程序的单元测试中进入viewpager视图中的下一页。操作栏也有标签。 (注意:使用最低API级别为11)。

我尝试过使用:

public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity> {
public void testPagerUI(){
    mActivity.runOnUiThread(new Runnable() {

        @Override
        public void run() {
            mViewPager.requestFocus();
            mViewPager.setCurrentItem(INITIAL_POSITION); // = 0
        }
    });
this.sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
this.sendKeys(KeyEvent.KEYCODE_DPAD_RIGHT);

int currPos = mViewPagerPageChangeListener.getCurrentPage();
int currTab = mActionBar.getSelectedNavigationIndex();
assertTrue(currPos == SECOND_PAGE_POS); // Fails
assertTrue(currTab == SECOND_PAGE_POS); // Fails 

两个断言都失败,logcat将currPos和currTab显示为0.

任何见解都会非常感激。感谢。

1 个答案:

答案 0 :(得分:0)

您是否尝试过进行前置条件测试。如果没有,那么你可以在&#34; runOnUiThread()&#34;之前添加以下功能。 : -

 public void testPreConditions()
    {
        assertNotNull(mViewPager);
    }

我认为它失败了因为&#34; mViewPager&#34;保持为空。上述测试在测试开始之前运行,并确保测试用例中使用的组件不为空。如果&#34; mViewPager&#34;如果为null,则测试用例将失败并出现&#34; AssertionFailedError&#34;信息。我们会知道的。