Robotium在简单的Android JUnit测试中崩溃



我无法运行一个微不足道的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)和ad上的

。最初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网站上的Robotium -solo- 3.6.6 .jar。

是否有任何原因,你使用ActivityUnitTestCase?你应该使用ActivityInstrumentationTestCase2。然后必须更改构造函数- add包作为参数。看这里:http://code.google.com/p/robotium/wiki/Getting_Started

最新更新