Только что начал использовать Robolectric, и это похоже на то, что мне нужно. Тем не менее, я ударил немного дорожного знака в отношении использования SharedPreferences.Предоставление тестовых данных для SharedPreferences для Robolectric
У меня есть два теста случая
активность ожидает новый/пустой sharedPreferences
активность ожидает sharedPreferences с некоторыми данными в нем уже
Для тестового примера 1, испытания проходят, как ожидалось, поэтому все хорошее :)
Однако для тестового примера 2 я, похоже, не могу найти хороший способ предоставить Robolectric некоторые поддельные данные, поэтому Activity сможет получить доступ к этим поддельным данным.
Это похоже на очень распространенный случай использования, но я не могу понять, как это сделать!
+1, это помогло мне много! (второй работает отлично). Я использую это, чтобы избежать запуска асинхронных задач в тестовом режиме, установив логический режим «тестовый режим» на общих привилегиях. – Jimmy
Совет: в тестируемом коде, вызывающем getSharedPreferences, убедитесь, что вы используете контекст приложения, иначе это не сработает. –
@ Jimmy Я бы скорее выполнил это, используя настраиваемые поля конфигурации сборки: http://michiganlabs.com/string-constants-generated-gradle-build-configurations – martyglaubitz