簡単な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を使用してみました。