android - 遍历列表并单击 Robotium 中的列表项

标签 android robotium

我正在尝试通过遍历列表并单击每个列表元素以启动另一个 Activity 来在 Robotium 中运行一些自动化测试。我的测试方法中有以下代码:

代码:

      solo.assertCurrentActivity("Wrong activity", MainActivity.class);
      //Clicks on the action bar tab
      solo.clickOnText("Charts"); 


      ArrayList<ListView> list = solo.getCurrentListViews();

      for(int i = 0; i < list.size(); i++) {


         //Clicks on the list item assert that the new activity is started
         solo.clickInList(chartPosition);
         solo.assertCurrentActivity("Json Class", JsonActivity.class);
         //Go back to the list  
         solo.goBack();         


     }

上面的代码没有点击任何列表项,JUnit 测试结果显示所有测试都已通过,这非常令人困惑。

有人知道如何在 Robotium 中成功地遍历列表吗?

我看到了另一个与此类似的问题,但答案建议查看 jMock 而不是帮助。

最佳答案

我看到了几个问题:

  1. 代码遍历 Activity 中的所有 ListView ,但未对当前 ListView 执行任何操作。
  2. 由于代码不显示 chartPosition 的值,因此无法保证当前列表中有多少项。
  3. 我认为您需要等待新 Activity 加载。

试试这个:

  for(int i = 0; i < list.size(); i++) {
      assertTrue("There are no listviews in this activity.", list.size() > 0);
      chartPosition = 0;  // just to be safe, point at the first item in the list.
      for(int i = 0; i < list.size(); i++) {
         solo.clickInList(chartPosition, i);  // Note that "i" identifies the ListView

         solo.waitForActivity("name.of.the.expected.activity");

      }
     ...
  }

免责声明 - 此建议完全基于代码检查和 Robotium Solo Javadoc:http://www.jarvana.com/jarvana/view/com/jayway/android/robotium/robotium-solo/1.4.0/robotium-solo-1.4.0-javadoc.jar!/com/jayway/android/robotium/solo/Solo.html#clickInList(int)

关于android - 遍历列表并单击 Robotium 中的列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15094105/

相关文章:

java - webview离线时隐藏或替换 "webpage not available"

android - 与 ViewPager 同步工具栏高度

java - 在android中创建一个文件路径

android - 如何在robotium中使用getChild?

android - Smack 4.1 Android 匿名注册到 Openfire

Java 在一个类中与 mysql 建立连接,但不在不同的类中建立连接

android - 是否可以从应用程序外部识别单击的 View 及其索引号?

android - Robotium 能否测试应用内计费、社交分享、 Intent 等功能?

java - 如何使用robotium调用另一个类中的方法

Android & Robotium - 需要额外的测试 Activity ?