2016-08-18 4 views
3

Я видел некоторые вопросы об этом.Espresso 2 - Как проверить несколько действий?

например. Android Espresso testing app flow

Но выше anwser не работает в эспрессо 2. Здесь мой сниппет

@Rule 
public ActivityTestRule<SplashActivity> mActivityTestRule = new ActivityTestRule<>(SplashActivity.class); 


@Test 
public void splashActivityTest() { 
    onView(withId(R.id.splash_container)).perform(swipeLeft()); 
    onView(withId(R.id.splash_container)).perform(swipeLeft()); 

    // launch the main activity 
    ViewInteraction appCompatButton = onView(
      allOf(withId(R.id.introduction_goto_btn), withText("goToMainActivity"), isDisplayed())); 
    appCompatButton.perform(click()); 

    // the hierarchy can't find HomeBtn , it still hold the Splash's View, so the code below will fail 
    onView(withId(R.id.home_btn)).check(ViewAssertions.matches(isDisplayed())); 
} 

Если Multi-Деятельность Тест не позволяет в одном TestFile, то, как сделать поток, чтобы проверить несколько действий?

+0

Вы можете поделиться скриншотами своей вызывающей и вызывающей деятельности? –

+0

Вы пытались добавить некоторый сон после выполнения щелчка и перед проверкой того, что отображается home_btn? – jeprubio

+0

@ 2BAB, привет приятель. Вы решили эту проблему. Я сталкиваюсь с тем же. – AQU

ответ

1

Да, это возможно. В одном из образцов они предназначались это здесь https://github.com/googlesamples/android-testing/blob/master/ui/espresso/BasicSample/app/src/androidTest/java/com/example/android/testing/espresso/BasicSample/ChangeTextBehaviorTest.java

@Test 
public void changeText_newActivity() { 
// Type text and then press the button. 


onView(withId(R.id.editTextUserInput)).perform (typeText(STRING_TO_BE_TYPED), 
     closeSoftKeyboard()); 
onView(withId(R.id.activityChangeTextBtn)).perform(click()); 

// This view is in a different Activity, no need to tell Espresso. 
onView(withId(R.id.show_text_view)).check(matches(withText(STRING_TO_BE_TYPED))); 
} 
1

у меня есть тот же беда. Espresso не ждет, пока будет запущена новая активность, даже когда я использовал холостой ход. Таким образом, это заставило меня установить задержки перед проверкой просмотров на новую активность.

onView(withId(R.id.activityChangeTextBtn)).perform(click()); 

try { 
    Thread.sleep(2000); 
} catch (InterruptedException e) { 
    e.printStackTrace(); 
} 

// This view is in a different Activity, no need to tell Espresso. 
onView(withId(R.id.show_text_view)).check(matches(withText(STRING_TO_BE_TYPED)));