如何在Android测试用例中使用jUnit测试滑动/ fling事件

时间:2012-06-14 22:50:06

标签: android user-interface testing robotium

我发现在android.test.TouchUtils中有一个拖拽方法,我尝试一下,但onfling()似乎没有对此操作做出反应。我也尝试机器人的scrollToSide(int),也没有工作。有关如何在我的测试用例中实现此目的的任何建议吗?

3 个答案:

答案 0 :(得分:4)

拖动(浮动fromX,浮动到X,浮动从Y,浮动到Y,int步骤)Robotium中也可以工作,滑动和scrollToSide似乎不起作用。< / p>

使用android.support.v4.view.ViewPager,以下代码适用于我:

solo.drag(300,0,100,100,1);

答案 1 :(得分:2)

我相信您可以使用MotionEvent类和obtain()方法来模拟各种滑动/触摸手势。这是我在此发现的第一个教程,它应该让你开始:http://softteco.blogspot.com/2011/02/touch-hold-swipe-release-gesture.html

答案 2 :(得分:2)

我在Robotium中使用以下方法。我需要使用这种hacky方式,因为v4.view.ViewPager总是让我的测试套件因某些原因停止运行。

private void swipeToLeft(int stepCount) {
    Display display = solo.getCurrentActivity().getWindowManager().getDefaultDisplay();
    int width = display.getWidth();
    int height = display.getHeight();
    float xStart = width - 10 ;
    float xEnd = 10;
    solo.drag(xStart, xEnd, height / 2, height / 2, stepCount);
}

private void swipeToRight(int stepCount) {
    Display display = solo.getCurrentActivity().getWindowManager().getDefaultDisplay();
    int width = display.getWidth();
    int height = display.getHeight();
    float xStart = 10 ;
    float xEnd = width - 10;
    solo.drag(xStart, xEnd, height / 2, height / 2, stepCount);
}

整个想法来自杰森的这篇伟大帖子: http://blogs.steeplesoft.com/posts/2013/02/13/simulating-swipes-in-your-android-tests/