3

我发现android.test.TouchUtils里面有一个拖动方法,我试了一下,但onfling()似乎对这个动作没有反应。我也尝试了robotium的scrollToSide(int),也没有工作。关于如何在我的测试用例中实现这一点的任何建议?

4

3 回答 3

4

在Robotium 中的 drag(float fromX, float toX, float fromY, float toY, int stepCount)可以工作,而 swipe 和 scrollToSide 似乎不起作用。

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

solo.drag(300,0,100,100,1);
于 2013-07-24T10:16:40.440 回答
2

我相信您可以使用MotionEvent类及其obtain()方法来模拟各种滑动/触摸手势。这是我找到的第一个教程,它应该可以帮助您入门:http ://softteco.blogspot.com/2011/02/touch-hold-swipe-release-gesture.html

于 2012-07-20T20:04:40.490 回答
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);
}

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

于 2013-09-27T21:07:33.577 回答