2013-09-09 1 views
1

Я пытаюсь перейти на следующую страницу в представлении viewpager в модульном тесте для приложения Android. В панели действий есть вкладки. (NB: использование минимального API-уровня 11).Как проверить взаимодействие с ViewPager

Я попытался с помощью:

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.

Любые идеи будут оценены. Благодарю.

ответ

0

Вы пытались выполнить предварительный тест. Если нет, то вы можете просто добавить ниже функцию до «runOnUiThread()»: -

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

Я думаю, что это становится не удалась, поскольку «mViewPager» остающеся нуль. Вышеупомянутый тест запускается до начала теста и гарантирует, что компоненты, используемые в тестовом примере, не равны нулю. В случае, если «mViewPager» имеет значение null, тогда тестовый пример завершится с сообщением «AssertionFailedError». И мы бы это знали.