2016-04-27 5 views
1

Я использую эспрессо и бегун AndroidJunit4. Я пытаюсь установить некоторые предпочтения, так что когда onCreate или onResume срабатывает, эта логика будет задействована. Кажется, что вызов prefs перед выполнением onView() не влияет. Я печатаю предпочтения в onResume и onCreate, и они пусты. Обратите внимание на тестовый пример shouldOpenVerifyFragement().Состояние настроек перед запуском теста

Любые мысли или предложения о том, как это сделать?

@RunWith(AndroidJUnit4.class) 
@LargeTest 
public class DriverActivityTest { 
@Rule 
public final ActivityTestRule<DriverActivity> sut = new ActivityTestRule<>(DriverActivity.class); 

@Test 
public void shouldOpenVerifyFragement() { 

    Log.d("TEST", "shouldOpenVerifyFragment"); 
    SharedPreferences settings = sut.getActivity().getSharedPreferences(APP_PREFS, Context.MODE_PRIVATE); 
    SharedPreferences.Editor editor = settings.edit(); 
    editor.putBoolean("status", Boolean.valueOf(false)); 
    editor.putString("token", "token"); 
    editor.commit(); 

    onView(withText("Pin Verify")).check(matches(isDisplayed())); 
} 
/** 
* Clears everything in the SharedPreferences 
*/ 
@Before 
@After 
public void clearSharedPrefs() { 
    SharedPreferences settings = sut.getActivity().getSharedPreferences(APP_PREFS, Context.MODE_PRIVATE); 
    SharedPreferences.Editor editor = settings.edit(); 
    editor.clear(); 
    editor.commit(); 

} 

}

ответ

1

Избегайте автоматический запуск вашей деятельности

sut = new ActivityTestRule<>(DriverActivity.class, false, false) 

И начать активность, когда все настройки осуществляются

public void shouldOpenVerifyFragement() { 
    ... 
    editor.commit(); 
    sut.launchActivity(null) 
    ... 
} 
Смежные вопросы