Androidでジェスチャーを解決するにはどうすればよいですか?
-
09-10-2019 - |
質問
Androidの画面上のスワイプ左/右アクションをユニットテストしたいのですが、ドキュメントを見つけることができませんでした。誰かが手を貸すことができますか?それもできますか?
解決
通常、タッチはアクションを実行し、タッチ自体ではなくアクションをテストします。
他のヒント
まったく同じタイプのジェスチャーのためにまったく同じことをする方法を学ぶためにあなたの質問を見つけました。次のアプローチを使用して、かなり純粋なユニットテストを実行することができました。言い換えれば、単体テスト View.OnTouchListener.onTouch(View v, Event event)
関数。
これが私が「ock笑」することができた方法です View
と Event
実行するために 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);
}
}
所属していません StackOverflow