0

У меня есть кнопка в моей деятельности. После нажатия кнопки он проверяет статус регистрации пользователя. Если зарегистрировано, тогда появляется диалоговое окно, в противном случае начинается активность регистрации.Robolectric, как проверить видимость FragmentDialog?

Я установил необходимые флаги, которые говорят, что пользователь зарегистрировался. Я выполнить щелчок и ожидаем, что диалог должен быть создан, но после отладки я вижу это пустой :(

Это мой код:

@Test 
    public void testSignupButton() 
    { 
     PreferenceUtils.setSessionId(activity, "sessionId"); 
     assertTrue(PreferenceUtils.isActivated(activity)); 

     btnSignUp.performClick(); 

     Dialog dialog = ShadowDialog.getLatestDialog(); // << dialog is null 
     ShadowDialog loginDialogFragment = Shadows.shadowOf(dialog); // Test fails here since dialog is null 
     assertThat(loginDialogFragment.getTitle().toString(), equalTo("TestDialogFragment")); 
    } 

Любая идея, была бы оценена, благодаря

ответ

0

OMG. , я нашел, где моя проблема. у меня была activity = Robolectric.buildActivity(HitchWelcomeActivity.class).create().get(); в моем setupView метод, который является неправильным. для того чтобы получить реальную деятельность, я должен иметь visible() метод тоже.

Итак, я изменил выше кода следующий и моя проблема исправлена.

@Before 
    public void setUp() 
    { 
     activity = Robolectric.buildActivity(WelcomeActivity.class) 
       .create() 
       .start() 
       .resume() 
       .visible() 
       .get(); 

     btnSignUp = (Button) activity.findViewById(R.id.dialog_welcome_sign_up); 
     btnSkip = (TextView) activity.findViewById(R.id.dialog_welcome_next_time); 
    }