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



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

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

我已经考虑过使用Robotium,然而,GoogleMaps的扩展只支持v1,我使用的是v2。Espresso似乎根本不支持GoogleMaps,所以我只能添加自己的扩展或使用简单的ActivityInstrumentationTestCase2实现。

有什么想法吗?

这对你有用吗?

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);

使用UIAutomator:

UiDevice device = UiDevice.getInstance(getInstrumentation());
UiObject marker = device.findObject(new UiSelector().descriptionContains("marker title"));
marker.click();

我的完整答案:使用Espresso对谷歌地图进行单元测试

最新更新