我想对 Android 屏幕上的向左/向右滑动操作进行单元测试,但我找不到任何文档。任何人都可以伸出援助之手吗?甚至可以做到吗?
问问题
1847 次
2 回答
2
通常,触摸会执行一个动作,您将测试该动作,而不是触摸本身。
于 2010-10-20T12:01:03.023 回答
0
我发现您的问题试图学习如何为完全相同类型的手势做完全相同的事情。我能够使用以下方法运行非常纯粹的单元测试。换句话说,单元测试View.OnTouchListener.onTouch(View v, Event event)
功能。
这是我如何能够“模拟” View
andEvent
为了运行onTouch
import android.os.Looper;
import android.test.mock.MockContext;
import android.view.MotionEvent;
import android.view.ViewStub;
import junit.framework.TestCase;
public class SwipeDetectorTest extends TestCase {
public void testOnTouch() throws Exception {
class MyMockContext extends MockContext {
public Looper getMainLooper() {
return Looper.getMainLooper();
}
}
MyMockContext context = new MyMockContext();
View v = new ViewStub(context);
int x = 0; int y = 0;
// simulated down event
MotionEvent event =
MotionEvent.obtain(1, 0, MotionEvent.ACTION_DOWN, x, y, 0);
SwipeDetector swipeDetector = new SwipeDetector();
assertFalse(swipeDetector.onTouch(v, event));
x = 30; y = 0;
event =
MotionEvent.obtain(1, 1, MotionEvent.ACTION_MOVE, x, y, 0);
boolean action = swipeDetector.onTouch(v, event);
assertTrue(action);
boolean result = swipeDetector.getSwipeHorizontal()
.equals(SwipeDetector.Action.LeftToRight);
assertTrue(result);
}
}
于 2015-02-28T21:41:26.403 回答