我正试图在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.
任何见解都会非常感激。感谢。
答案 0 :(得分:0)
您是否尝试过进行前置条件测试。如果没有,那么你可以在&#34; runOnUiThread()&#34;之前添加以下功能。 : -
public void testPreConditions()
{
assertNotNull(mViewPager);
}
我认为它失败了因为&#34; mViewPager&#34;保持为空。上述测试在测试开始之前运行,并确保测试用例中使用的组件不为空。如果&#34; mViewPager&#34;如果为null,则测试用例将失败并出现&#34; AssertionFailedError&#34;信息。我们会知道的。