저는 Espresso를 사용하여 응용 프로그램을 테스트하고 있으므로 RecyclerView에서 끌어서 놓기 동작을 테스트해야합니다. 불행히도 에스프레소에서는 어떤 드래그() 액션도 볼 수 없습니다. 뭔가 빠졌습니까?Espresso에서 drag()와 동등한 Robotium?
0
A
답변
1
나는 어떤 Espresso
드래그 옵션을 찾지 못했습니다. swipeUp()
, swipeDown()
, swipeLwft()
, swipeRight()
인데이 경우 유용하지 않을 수 있습니다. 이 sendMovement()
방법 Espresso MotionEvents
클래스도하지만, https://groups.google.com/forum/#!msg/android-test-kit-discuss/X3TDJBUT4Ho/OJAOkTOoxGcJ
,하지만 나는 그것을 시도하지 않은 :
또한, Google 그룹에 응답 없음에 문제가있다. 아래
를 사용하여 코드 :
또한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();
}
에 대한 TouchUtils
읽기 (이미 API (24)에서 사용되지 않음) :
https://developer.android.com/reference/android/test/TouchUtils.html 그것이
감사합니다, 나는이를 구현하기 위해 노력하고있어 도움이 될 것입니다 희망 MotionEvents를 사용하면 당분간 운이 없지만 계속 게시됩니다! –
내 대답은 유익하다. – piotrek1543
MotionEvents를 사용하여 성공하지 못했습니다. (사용자 코드를 사용하여 MotionEvent를 가져 와서 UiController에 적용하여 사용자 정의 ViewAction에서 코드를 사용했습니다.) sleep (1000) 내 드래그 앤 드롭뿐만 아니라 다운 후 긴 언론에서 방아쇠를 당긴다. –