【问题标题】:Called from Wrong Thread Exception in Robotium Testcase从 Robotium 测试用例中的错误线程异常调用
【发布时间】:2013-10-16 07:40:35
【问题描述】:

我正在使用 Robotium 为我的具有多个活动的 Android 应用程序编写测试用例。该应用在 UI 中实现了Drawer。但是当独奏打开抽屉时,它给出了异常Called From Wrong Thread Exception。点击 ActionBar Home 时会加载抽屉。

public void test4Drawer()
{
    solo1.clickOnActionBarHomeButton();
    Boolean actual=solo1.searchText("About");
    Boolean expected =true;
    assertEquals("Drawer Not Loaded",expected,actual);
}

【问题讨论】:

  • 与您的问题无关的事情。尽可能使用原始类型。在您的情况下,最好使用 boolean 而不是 Boolean

标签: android unit-testing testing junit robotium


【解决方案1】:

在你的 setUp() 中:

mActivity = getActivity();

在你的测试用例中添加这个:

mActivity.runOnUiThread(new Runnable() {
    public void run() {
        solo1.clickOnActionBarHomeButton();
    }
});

但是,当您使用标准的 robotsium 方法时,该错误不应该出现。如果此解决方案不适合您,请在此处分享完整的堆栈跟踪。

【讨论】:

    【解决方案2】:

    Robotium 4.3 版本有问题runOnUiThread 无济于事。

    正如相关的 bug report 所说,它已在 Robotium 4.3.1 版本中修复。

    下载here

    如果您保留 runOnUiThread 代码并升级库,您将在 logcat 中看到更明确的异常:

    E/AndroidRuntime(32201): java.lang.RuntimeException:
      This method can not be called from the main application thread
    

    去掉runOnUiThread就可以了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多