如何以编程方式选择Android Map v2标记来测试onclick行为?

时间:2014-09-09 14:42:19

标签: android google-maps-android-api-2

我正在尝试为使用v2 GoogleMaps的基于地图的Android应用程序编写自动化测试。

我需要能够以编程方式重新创建用户录制地图标记的效果,以便我可以验证其他UI活动。

我已经研究过使用Robotium但是,GoogleMaps可用的扩展只支持v1而我使用的是v2。 Espresso对GoogleMaps似乎没有任何支持,所以我要么添加自己的扩展,要么使用普通的ActivityInstrumentationTestCase2实现。

有什么想法吗?

2 个答案:

答案 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();

我的完整答案: Using Espresso to Unit Test Google Maps