Я хочу очистить SharedPreferences
перед запуском любого теста на экране. Я использую приведенный ниже код для достижения этого, но он не работает.
@RunWith(AndroidJUnit4::class)
class HomePage{
private lateinit var activityScenario: ActivityScenario<HomeActivity>
@Before
fun setUp() {
IdlingRegistry.getInstance().register(EspressoIdlingResource.countingIdlingResource)
activityScenario = ActivityScenario.launch(HomeActivity::class.java)
InstrumentationRegistry.getInstrumentation().targetContext.clearSharedPrefs()
}
@Test
fun testConditionA(){
//Do something
}
@Test
fun testConditionB(){
//Do something
}
}
Код для очистки SharedPreferences
fun Context.clearSharedPrefs() =
this.getSharedPreferences("name", Context.MODE_PRIVATE).edit().clear().commit()
Ниже приведены статьи, которые я уже прошел
ОБНОВЛЕНИЕ
Если я поставлю Thread.sleep()
сразу после InstrumentationRegistry.getInstrumentation().targetContext.clearSharedPrefs()
, это сработает. Как я могу избежать этого или есть лучший подход?