可能是什么问题?我的Robolectric测试前一段时间运行良好,但现在它们都失败并出现同样的错误。我能想到的唯一变化是更改为2.1.1版。我正在使用RobolectricTestRunner运行它们,运行配置指向实际的app目录。
但是每个测试都失败了,因为应用程序的应用程序类在访问首选项时始终为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)
答案 0 :(得分:0)
显然,在我的应用程序类的onCreate中发生了错误:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
将 getBaseContext()更改为此,测试再次运行。