UnsupportedOperationException при вызове getSharedPreferences () из модульного теста

Я реализовал контент-провайдера, который извлекает данные из службы, установленной в сети. Поставщик контента берет необходимые параметры из общих предпочтений (учетные данные пользователя, имя приложения и т. Д.)

SharedPreferences settings = getContext().getSharedPreferences(NET_PREFS, 0);

Я использую модульный тест для этого поставщика контента:


public class ResearchProviderTest extends ProviderTestCase2<MyProvider>{

    public ResearchProviderTest() {     
        super(MyProvider.class, MyProvider.CONTENT_AUTHORITY);
    }

    public void testInsert() {

        ContentValues values = new ContentValues();        
        values.put(QueryFields.FIELD_QUERY_TEXT, "query" );

        Uri newUri = getMockContentResolver().insert(MyProvider.CONTENT_URI, values);

        Cursor readMessagesCursor = getMockContentResolver().query(
                newUri ,
                        new String[] { FIELD_SR_TITLE }, 
                        null, null, null );
        assertTrue("The cursor should contain some entries", readMessagesCursor.moveToFirst());
    }
}

Во время выполнения модульного теста. Возникает исключение:


java.lang.UnsupportedOperationException
   at android.test.mock.MockContext.getSharedPreferences(MockContext.java:127)
   at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:146)
   at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:146)
   at com.company.mobile.android.net.RemoteExecutor.retrieveCredentials(RemoteExecutor.java:171)
   at com.company.mobile.android.net.service.Adapter.executeSearch(Adapter.java:33)
   at com.company.mobile.android.provider.MyProvider.insert(MyProvider.java:167)
   at android.content.ContentProvider$Transport.insert(ContentProvider.java:174)
   ...

Кто-нибудь знает, как передать общие настройки в MockContext? Следует ли мне использовать другой подход, если мне нужен контекст во время тестирования Content Provider?

10
задан Glaxalg 11 March 2011 в 00:32
поделиться