当我们的团队创建一个使用 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 值以创建更严格的测试。