0

私はEspressoを使ってアプリケーションをテストしています。私はRecyclerViewでドラッグアンドドロップ操作をテストする必要があります。残念ながら私はエスプレッソのドラッグ()アクションを見ることができませんが、何か不足していますか?エスプレッソのdrag()と同等のRobotium?

答えて

1

私はEspressoドラッグオプションが見つかりませんでした。 swipeUp(),swipeDown(),swipeLwft(),swipeRight()のみであり、その場合には有用ではないかもしれない。

また、Googleグループに無応答の場合には問題があります:https://groups.google.com/forum/#!msg/android-test-kit-discuss/X3TDJBUT4Ho/OJAOkTOoxGcJ

sendMovement()方法とEspresso MotionEventsクラスでもあるが、私はそれを試していない、けれども。

は、以下のコードを使用します。

public static void drag(Instrumentation inst, float fromX, float toX, float fromY, 
          float toY, int stepCount) { 
     long downTime = SystemClock.uptimeMillis(); 
     long eventTime = SystemClock.uptimeMillis(); 

     float y = fromY; 
     float x = fromX; 

     float yStep = (toY - fromY)/stepCount; 
     float xStep = (toX - fromX)/stepCount; 

     MotionEvent event = MotionEvent.obtain(downTime, eventTime, 
       MotionEvent.ACTION_DOWN, x, y, 0); 
     inst.sendPointerSync(event); 
     for (int i = 0; i < stepCount; ++i) { 
      y += yStep; 
      x += xStep; 
      eventTime = SystemClock.uptimeMillis(); 
      event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_MOVE, x, y, 0); 
      inst.sendPointerSync(event); 
     } 

     eventTime = SystemClock.uptimeMillis(); 
     event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_UP, x, y, 0); 
     inst.sendPointerSync(event); 
     inst.waitForIdleSync(); 
    } 

も(すでにAPI 24から非推奨)に関するTouchUtilsをお読みください。https://developer.android.com/reference/android/test/TouchUtils.html

が、私はこれを実装しようとしている、それは

+0

ありがとう役立つことを願っていますMotionEventsで、瞬間の幸運は、あなたが掲載し続ける! –

+0

私の答えがusefuだったことを知らせてくれる – piotrek1543

+1

私はMotionEventsで成功しませんでした:(あなたのコードを使ってMotionEventを取得し、カスタムViewActionでコードを使用するためにそれらをUiControllerに適用しました。ダウンとドロップの後に、ドラッグが長く押されたときにドロップされます。 –