可以与Google Maps API交互的Android单元测试框架。有人存在吗?

时间:2013-01-09 01:38:26

标签: unit-testing google-maps robotium android-4.0-ice-cream-sandwich junit3

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

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

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

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

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

2 个答案:

答案 0 :(得分: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值来创建更严格的测试。

答案 1 :(得分:1)

如果有人想在经过多次搜索后想知道,我终于找到了可以测试谷歌地图的东西。缩放等级和我相信tap pin(方法称为tapMapMarkerItem())都支持。我还没有测试针脚水龙头。 显然,令人敬畏的Robotium本身并不支持地图测试。 Nicholas Albion足以创建一个扩展,为Android上的地图提供测试支持。非常感谢尼古拉斯!

<小时/> 所以这是:
1.从robotium.org下载Robotium罐子(我发现这有用http://www.vogella.com/articles/AndroidTesting/article.html - 由Lars Vogel提供)
2。从https://github.com/nalbion/robotium-maps

下载扩展程序