1

私はいくつかのアクティビティクラスを備えたAndroidアプリを開発しています。ユニットテストにRobolectricを使用しています。テストセットアップでは、テスト対象のアクティビティでonCreate(null)を呼び出します。

@Before
public void setUp() throws Exception {
    activity = new StartARound();
    activity.onCreate(null);
    btnSelectCourse = (Button) activity.findViewById(com.catalyst.golfapp.R.id.btnSelectCourse);
    btnAddACourse = (Button) activity.findViewById(com.catalyst.golfapp.R.id.btnAddACourse);
    btnShowLocation = (Button) activity.findViewById(com.catalyst.golfapp.R.id.btnShowLocation);
    textView1 = (TextView) activity.findViewById(com.catalyst.golfapp.R.id.textView1);
}

問題は、私がテストしているアクティビティのonCreateメソッドが呼び出すことです。

getActionBar().setDisplayHomeAsUpEnabled(true);

このコード行を実行すると、java.lang.NullPointerExceptionエラーが発生し、テストは実行されません。検討したいアイデアや追加のコードはありますか?

4

2 に答える 2

0

ところで、使用getActionBar()はお勧めしません。代わりに、新しいアクション バーを含む Android-AppCompat-v7 を使用します。を使用して取得できますgetSupportActionBar()

于 2015-05-08T02:10:06.727 に答える
0

getActionBar()Robolectric の最新バージョンには実装されていません。

これは ShadowActivity のソース ファイルです: https://github.com/pivotal/robolectric/blob/master/src/main/java/com/xtremelabs/robolectric/shadows/ShadowActivity.java

この API を使用して、robolectric に存在しない関数を使用していることを確認できます: http://pivotal.github.com/robolectric/javadoc/com/xtremelabs/robolectric/Robolectric.html#logMissingInvokedShadowMethods()

于 2013-02-17T01:50:48.910 に答える