2

我正在使用 Android 4.0 上的 Google 地图,我想知道:

是否有可以与 Google Maps API 交互的测试框架(或任何东西..)?在 Android 上与 Google 地图进行交互/测试时有哪些可能性?是否无法在地图上找到所有图钉并单击它们或确定缩放级别?

这个网站上似乎有几个问题处理类似的问题/没有答案的问题。

我意识到“互动”是一个广义的术语。我真的在寻找任何帮助,无论是建议还是只是告诉我一些不可能的事情。

我一直在使用 JUnit,但它本身似乎受到限制。就在今天,我开始研究 Robotium,因为我需要做的大部分测试都是基于 UI 的。我是Robotium的新手,所以也许有可能,但我还没有发现它?

4

2 回答 2

3

当我们的团队创建一个使用 Google 地图的 Android 应用程序时,我能够使用地图片段的 R.id 创建测试。重要的是要注意我可以访问应用程序的代码,所以我知道要查找哪些变量。

在创建这个测试之前,我想确保我的目标是正确的 R.id,所以我进入了 R 文件,复制了值并将其放入

assertEquals(id.satellite,copiedRValue);

返回true,然后围绕可变变量构建测试

 initialID = solo.waitForFragmentById(id.satellite); //where id.satellite is defined in the R file, eventually would time out and throw error if fragment was not present
    //save the map type, leave
    //and do other awsome stuff
    //before coming back to the map
  finalID = solo.waitForFragmentById(id.satellite);//capture the map fragment that is now displayed, again would time out if this specific fragment was not visible

    //assert that the fragments are equal
     assertTrue(initialID.equals(finalID);

我在这个测试和其他 Robotium 测试中遇到的最大问题是我发生了单击事件以引入菜单,有时 Robotium 不会执行单击,并且单击时测试会失败。

这是我第一次使用 Robotium 进行测试,因此可能有其他方法可以操纵 R.id 值以创建更严格的测试。

于 2013-12-20T20:21:14.203 回答
1

万一有人想知道经过大量搜索,我终于找到了可以测试谷歌地图的东西。诸如缩放级别之类的东西,我相信 Tap pin(方法称为 tapMapMarkerItem())是受支持的。我还没有测试过pin tap。显然,很棒的 Robotium 本身并不支持地图测试。Nicholas Albion 很好地创建了一个扩展来为 Android 上的地图提供测试支持。非常感谢尼古拉斯!


所以这里是:
1. 从 robotium.org 下载 Robotium jars(我发现这很有帮助 http://www.vogella.com/articles/AndroidTesting/article.html - 由 Lars Vogel 提供) 2. 从https
下载扩展: //github.com/nalbion/robotium-maps

于 2013-01-10T02:37:41.290 回答