0

簡単な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)

私の2つのデバイス(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なし)は問題なく実行および合格します。

RobotiumWebサイトのrobotium-solo-3.6.jarを使用してみました。

4

1 に答える 1

3

何か理由はありますか、ActivityUnitTestCaseを使用していますか?むしろActivityInstrumentationTestCase2を使用する必要があります。次に、コンストラクターを変更する必要があります-パラメーターとしてパッケージを追加します。ここを見てください:http ://code.google.com/p/robotium/wiki/Getting_Started

于 2013-01-17T18:27:37.760 に答える