Я наткнулся на Espresso после изучения автоматизированных систем тестирования для Android. Казалось, что у меня есть все, что я хотел: надежные тесты, минимальный шаблонный код, повышенная производительность.Лучшая автоматическая тестовая производительность Android с использованием Expresso?
Я смотрел презентацию GTAC 2013, показывая Эспрессо, и был очень рад видеть, как быстро он запускал тесты. Тем не менее, фактически выполнив некоторые тесты, я должен сказать, что я не замечаю многого, если какая-либо производительность при использовании стандартной платформы тестирования Android. Я не делал никакого «официального» бенчмаркинга, но я понял, что Espresso сдул стандартную платформу тестирования Android.
Проект, который я тестирую, описан в учебнике на developer.android.com. Тесты, которые я пишу очень просто:
@Test
public void test_sendButton_shouldInitiallyBeDisabled() {
onView(withId(R.id.button_send)).check(matches(not(ViewMatchers.isEnabled())));
}
@Test
public void test_sendButton_shouldBeEnabledAfterEnteringText() {
String enteredText = "This is my message!";
// Type Text
onView(withId(R.id.edit_message)).perform(ViewActions.typeText(enteredText));
// Validate the Result
onView(withId(R.id.button_send)).check(matches(ViewMatchers.isEnabled()));
}
@Test
public void test_enteringTextAndPressingSendButton_shouldDisplayEnteredText() {
String enteredText = "This is my message!";
// Type Text
onView(withId(R.id.edit_message)).perform(ViewActions.typeText(enteredText));
// Click Button
onView(withId(R.id.button_send)).perform(click());
// Validate the Results
onView(withId(R.id.display_message)).check(ViewAssertions.matches(ViewMatchers.withText(enteredText)));
}
Я следовал всем инструкциям на веб-сайте Эспрессо, уделяя особенно пристальное внимание, что моя конфигурация Run использовал GoogleInstrumentationTestRunner.
Так что мне не хватает? Я просто пропустил что-то простое? Или мое предположение о значительно улучшенной производительности совершенно неверно?