0

何が問題なのですか?私の Robolectric テストは、少し前は正常に実行されていましたが、現在はすべて同じエラーで失敗しています。私が思いつく唯一の変更点は、バージョン 2.1.1 への変更です。RobolectricTestRunner でそれらを実行しており、実行構成は実際のアプリ ディレクトリを指しています。

ただし、設定がアクセスされているため、アプリのアプリケーション クラスは常に null であるため、すべてのテストは失敗します。

java.lang.NullPointerException: can't get a shadow for null
        at org.robolectric.bytecode.ShadowWrangler.shadowOf(ShadowWrangler.java:414)
        at org.robolectric.Robolectric.shadowOf_(Robolectric.java:1077)
        at org.robolectric.Robolectric.shadowOf(Robolectric.java:483)
        at org.robolectric.shadows.ShadowPreferenceManager.getDefaultSharedPreferences(ShadowPreferenceManager.java:21)
        at android.preference.PreferenceManager.getDefaultSharedPreferences(PreferenceManager.java)
        at com.foo.bar.FooApplication.onCreate(FooApplication.java:90)
4

1 に答える 1

0

私のアプリケーションクラスのonCreateでこれが原因でエラーが発生したようです:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());

getBaseContext()これに変更すると、テストが再び機能します。

于 2013-06-16T18:05:13.747 に答える