1

我试图在 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。

任何见解将不胜感激。谢谢。

4

1 回答 1

0

您是否尝试过执行前提条件测试。如果没有,那么您可以在“runOnUiThread()”之前添加以下函数:-

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

我认为它失败了,因为“mViewPager”仍然为空。上述测试在测试开始之前运行,并确保测试用例中使用的组件不为空。如果“mViewPager”为空,则测试用例将失败并显示“AssertionFailedError”消息。我们会知道的。

于 2014-09-16T06:26:21.570 回答