Исключение нескольких хранилищ данных в тесте инструментов Android ⇐ Android
Исключение нескольких хранилищ данных в тесте инструментов Android
У меня есть класс Android Instrumentation Test, который должен тестировать хранилище данных, которое я использую. Но когда я добавляю в класс более одного теста, я получаю следующую ошибку:
java.lang.IllegalStateException: для одного и того же файла активны несколько хранилищ данных: /data/user/0/com.example.app/files/datastore/example_test.preferences_pb. Вам следует либо поддерживать хранилище данных как одноэлементное, либо подтвердить, что в одном и том же файле нет двух активных хранилищ данных (подтвердив, что область действия отменена). в androidx.datastore.core.SingleProcessDataStore$file$2.invoke(SingleProcessDataStore.kt:168) Это тестовый класс
private const val PREFERENCES = "example_test" @RunWith(AndroidJUnit4::класс) класс ПримерТест { частный контекст val = InstrumentationRegistry.getInstrumentation().targetContext частный вал dataStore = PreferenceDataStoreFactory.create( область = CoroutineScope(Dispatchers.IO + SupervisorJob()), ProduceFile = { context.preferencesDataStoreFile(PREFERENCES) } ) @Тест весело testOne() { runBlocking { dataStore.edit { it[stringPreferencesKey("bla")] = "bla" } } } @Тест весело testTwo() { runBlocking { dataStore.edit { it[stringPreferencesKey("bla")] = "bla" } } } } Как только я закомментирую testTwo(), все работает отлично. Я не понимаю, зачем создается второе хранилище данных.
У меня есть класс Android Instrumentation Test, который должен тестировать хранилище данных, которое я использую. Но когда я добавляю в класс более одного теста, я получаю следующую ошибку:
java.lang.IllegalStateException: для одного и того же файла активны несколько хранилищ данных: /data/user/0/com.example.app/files/datastore/example_test.preferences_pb. Вам следует либо поддерживать хранилище данных как одноэлементное, либо подтвердить, что в одном и том же файле нет двух активных хранилищ данных (подтвердив, что область действия отменена). в androidx.datastore.core.SingleProcessDataStore$file$2.invoke(SingleProcessDataStore.kt:168) Это тестовый класс
private const val PREFERENCES = "example_test" @RunWith(AndroidJUnit4::класс) класс ПримерТест { частный контекст val = InstrumentationRegistry.getInstrumentation().targetContext частный вал dataStore = PreferenceDataStoreFactory.create( область = CoroutineScope(Dispatchers.IO + SupervisorJob()), ProduceFile = { context.preferencesDataStoreFile(PREFERENCES) } ) @Тест весело testOne() { runBlocking { dataStore.edit { it[stringPreferencesKey("bla")] = "bla" } } } @Тест весело testTwo() { runBlocking { dataStore.edit { it[stringPreferencesKey("bla")] = "bla" } } } } Как только я закомментирую testTwo(), все работает отлично. Я не понимаю, зачем создается второе хранилище данных.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как бороться с коллизиями данных при синхронизации нескольких хранилищ/коллекций?
Anonymous » » в форуме C# - 0 Ответы
- 15 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как бороться с коллизиями данных при синхронизации нескольких хранилищ/коллекций?
Anonymous » » в форуме C# - 0 Ответы
- 15 Просмотры
-
Последнее сообщение Anonymous
-