Тесты Robolectric проваливаются на shadowOf

В чем может быть проблема? Мои тесты Robolectric некоторое время назад проходили нормально, но теперь все они завершаются с одной и той же ошибкой. Единственное изменение, о котором я могу думать, это переход на версию 2.1.1. Я запускаю их с помощью RobolectricTestRunner, и конфигурация запуска указывает на фактический каталог приложения.

Но каждый тест терпит неудачу, потому что класс приложения всегда равен нулю при доступе к настройкам:

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)

person ohra    schedule 10.06.2013    source источник


Ответы (1)


Видимо ошибка возникла из-за этого в onCreate моего класса приложения:

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

Изменил getBaseContext() на this, и тесты снова работают.

person ohra    schedule 16.06.2013