使用UiAutomator测试地图是否已加载

时间:2017-09-22 07:57:18

标签: android maps android-testing uiautomator android-espresso

我是Android新手。我有一个地图活动,在MainActivity中的某些事件之后调用,并在屏幕中显示一个地图。我无法弄清楚如何测试地图是否出现。 我知道它不可能用浓缩咖啡,但已经在UiAutomator的某个地方读过它。如何使用UiAutomator相同..?

2 个答案:

答案 0 :(得分:1)

您可以设置托管地图的视图的内容说明,以表明其准备就绪"。

    ...
    SupportMapFragment mapFragment =
            (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
    mapView = mapFragment.getView();
    mapView.setContentDescription("MAP NOT READY");
    // you may need to preserve existing description
    mapFragment.getMapAsync(this);



@Override
public void onMapReady(GoogleMap googleMap) {
    ...
    mapView.setContentDescription("MAP READY");
 }  

然后,在你的测试中

mDevice.wait(Until.hasObject(By.desc("MAP READY")), timeout);

答案 1 :(得分:0)

此解决方案对我有用:我刚刚更新了@Diego的解决方案,因为我在此行ClassCastException上获得了mapView = mapFragment.getView();,所以我删除了此行并没有设置最初的内容描述,因为googleMap默认具有内容描述为“ Google Map”,因此无需对其进行设置,只需在内部对其进行更新:

@Override
public void onMapReady(GoogleMap googleMap) {
    ...
    mapView.setContentDescription("Google Map Ready");
 }   

然后在测试类中等待:

mDevice.wait(Until.hasObject(By.desc("Google Map Ready")), timeout);