2014-01-28 2 views
0

Я наткнулся на 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.

Так что мне не хватает? Я просто пропустил что-то простое? Или мое предположение о значительно улучшенной производительности совершенно неверно?

ответ

3

Можно ожидать, что вы не заметите большой разницы против стандартного инструментария для очень простых тестов. Для более сложных тестов (например, те из них, которые охватывают несколько видов деятельности), которые работают непрерывно (то есть должны быть стабильными), люди часто в конечном итоге добавляют логику спящего/повторного сеанса, чтобы защитить от взлома. С помощью Espresso вы можете удалить это и значительно сократить время тестирования. Вот G+ post, в котором показано сравнение тестов Espresso vs Robotium.

Смежные вопросы