Текущий эспрессо не предоставляет никакого механизма для сброса состояния приложения. Но для каждого аспекта (pref, db, файлы, разрешения) существует решение.
Первоначально вы должны избегать того, чтобы эспрессо запускал вашу деятельность автоматически, чтобы у вас было достаточно времени для сброса.
@Rule
public ActivityTestRule<Activity> activityTestRule = new ActivityTestRule<>(Activity.class, false, false);
А позже начните свою деятельность с
activityTestRule.launchActivity(null)
Для сброса настроек вы можете использовать следующий фрагмент (перед началом вашей деятельности)
File root = InstrumentationRegistry.getTargetContext().getFilesDir().getParentFile();
String[] sharedPreferencesFileNames = new File(root, "shared_prefs").list();
for (String fileName : sharedPreferencesFileNames) {
InstrumentationRegistry.getTargetContext().getSharedPreferences(fileName.replace(".xml", ""), Context.MODE_PRIVATE).edit().clear().commit();
}
Вы также можете сбросить настройки после начала своей деятельности. Но тогда активность, возможно, уже прочитала предпочтения.
Ваш класс приложения запускается только один раз и уже запущен, прежде чем вы сможете сбросить настройки.
Я начал писать библиотеку, которая должна упростить тестирование с помощью espresso и uiautomator. Сюда входят инструменты для сброса данных приложения. https://github.com/nenick/espresso-macchiato См., например, EspAppDataTool с методами для очистка настроек, баз данных, кэшированных файлов и сохраненных файлов.
person
nenick
schedule
03.06.2016