【问题标题】:Robotium crash during simple Android JUnit test简单的 Android JUnit 测试期间的 Robotium 崩溃
【发布时间】:2013-01-17 17:21:26
【问题描述】:

我无法运行一个简单的 Robotium 测试:

public class TapsTest extends ActivityUnitTestCase<Ad>  {
public TapsTest() { super(Ad.class); }

Solo mSolo;

@Override
protected void setUp() throws Exception {
    super.setUp();
    mSolo = new Solo(getInstrumentation(), getActivity());      
}

public void testTabTaps() {
    assertTrue(mSolo.searchText("Latest")); // NPE thrown here
   }
}

此测试始终崩溃

java.lang.RuntimeException: java.lang.NullPointerException
at com.jayway.android.robotium.solo.Searcher.searchFor(Searcher.java:113)
at com.jayway.android.robotium.solo.Searcher.searchWithTimeoutFor(Searcher.java:68)
at com.jayway.android.robotium.solo.Solo.searchText(Solo.java:442)

在我的两台设备(Android 4.1.0 和 4.0.3)和 ADV 上。最初 Robotium 抱怨缺少 V4 支持库(我们不需要它用于其他目的)所以我添加了 android-support-v13.jar。现在类未找到异常消失了,但 NPE 仍然存在。我也尝试手动启动活动:

    Ad ado = startActivity(new Intent("android.intent.action.MAIN"), null, null);
    mSolo = new Solo(getInstrumentation(), ado);        

但 NPE 仍然存在。我试过mSolo.searchButton("Go"),在 UI 上有一个带有此文本的按钮,它是可见的,并且仍然是 Robotium 中第 113 行的相同 NPE。

如果没有经过测试,应用程序本身可以正确启动和运行。此外,其他 ActivityUnitTestCase 测试(没有 Robotium)运行并通过没有问题。

我尝试使用来自Robotium website 的robotium-solo-3.6.jar。

【问题讨论】:

    标签: android testing junit robotium


    【解决方案1】:

    有什么原因,你使用ActivityUnitTestCase? 您应该使用 ActivityInstrumentationTestCase2。 然后你必须改变你的构造函数 - 添加包作为参数。 看这里:http://code.google.com/p/robotium/wiki/Getting_Started

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-10
      • 2020-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-21
      • 1970-01-01
      相关资源
      最近更新 更多