2016-04-27 9 views
1

私はエスプレッソとAndroidJunit4ランナーを使用しています。 onCreateまたはonResumeが起動したときにロジックが使用されるように、いくつかのプリファレンスを設定しようとしています。 onView()を実行する前にprefsを呼び出すことは効果がないようです。私は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) 
    ... 
} 
関連する問題