我正在尝试为使用v2 GoogleMaps的基于地图的Android应用程序编写自动化测试。
我需要能够以编程方式重新创建用户录制地图标记的效果,以便我可以验证其他UI活动。
我已经研究过使用Robotium但是,GoogleMaps可用的扩展只支持v1而我使用的是v2。 Espresso对GoogleMaps似乎没有任何支持,所以我要么添加自己的扩展,要么使用普通的ActivityInstrumentationTestCase2实现。
有什么想法吗?
答案 0 :(得分:0)
这对你有用吗?
Projection projection = map.getProjection();
LatLng markerLocation = marker.getPosition();
Point screenPosition = projection.toScreenLocation(markerLocation);
long downTime = SystemClock.uptimeMillis();
long eventTime = SystemClock.uptimeMillis() + 100;
MotionEvent motionEvent = MotionEvent.obtain(
downTime,
eventTime,
MotionEvent.ACTION_UP,
screenPosition.x,
screenPosition.y,
0
);
mapView.dispatchTouchEvent(motionEvent);
答案 1 :(得分:0)
使用UIAutomator:
UiDevice device = UiDevice.getInstance(getInstrumentation());
UiObject marker = device.findObject(new UiSelector().descriptionContains("marker title"));
marker.click();