Можно ли написать тесты по нескольким действиям с использованием андроид-эспрессо-рамки?Тестирование нескольких действий с эспрессо
ответ
Да, это возможно. В одном из образцов они предназначались это здесь 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)));
}
Читать встроенный комментарий.
В ожидании новой активности, которую необходимо загрузить, Espresso не подразумевает.
Настоятельно можно написать тест Espresso (или любой измерительный прибор), который пересекает несколько видов деятельности. Вы должны начать с одного действия, но можете перемещаться по пользовательскому интерфейсу своего приложения в другие действия. Единственное предостережение - из-за ограничений безопасности тестовый поток должен оставаться в процессе вашего приложения.
Как утверждать, что как только я нажал на виджет, открылась правильная активность? – Bolhoso
Как и пользователь приложения, утверждается, что отображается конкретный вид из этого действия. – ValeraZakharov
Я проверил это, как:
onView(withId(R.id.hello_visitor)).perform(click());
pressBack();
onView(withId(R.id.hello_visitor)).check(matches(isDisplayed())); //fails here
Действие мыши начинает новый вид деятельности, очевидно.
Возможно, это слишком быстро, и вам нужно дождаться активности. – dnkoutso
Допустим, у вас есть два вида деятельности: HomeActivity и SearchResultsActivity. Для теста вы хотите сделать некоторые действия в HomeActivity и проверить результат на SearchResultsActivity. Тогда тест будет записан, как показано ниже:
public class SearchTest extends ActivityInstrumentationTestCase2<HomeActivity> {
public SearchTest() {
super(HomeActivity.class);
}
protected void setUp() throws Exception {
super.setUp();
getActivity(); // launch HomeActivity
}
protected void tearDown() throws Exception {
super.tearDown();
}
public void testSearch() {
onView(withId(R.id.edit_text_search_input)).perform(typeText("Hello World"));
onView(withId(R.id.button_search)).perform(click());
// at this point, another activity SearchResultsActivity is started
onView(withId(R.id.text_view_search_result)).check(matches(withText(containsString("Hello World"))));
}
}
Так что единственное, что вам нужно заботиться, что вы должны проходит тест-класс от ActivityInstrumentationTestCase2 < FirstActivity>, и вызвать супер (FirstActivity .class) в вашем конструкторе.
Вышеприведенный пример довольно прост.
Advance пример (когда startActivityForResult бывает):
Иногда это действительно заблуждение, чтобы написать тест, в котором все еще есть два задания А и В, а также применение потока отличается от указанного выше:
- пользователь ничего не делает в деятельности A, но активность A вызывает startActivityForResult для запуска активности B;
- затем пользователь вносит некоторые входы и нажимает на активность B (эта часть является реальным тестом);
- Наконец, активность B завершается, она вызывает setResult и возобновляет активность A (здесь вы должны проверить результат).
Даже если все испытания часть происходит на активности B, вы можете просто нужно проверить один маленький кусочек на активности А, но ваш тест должен простираться от ActivityInstrumentationTestCase2 < ActivityWhoCallsStartActivityForResult> который является деятельность A, но не деятельность B. В противном случае, когда тестовая часть будет выполнена, активность A не будет возобновлена, у вас нет шансов проверить ваш результат.
- 1. Эспрессо-тестирование с ExpandableListView
- 2. Тестирование эспрессо с объектами JSON
- 3. Тестирование Закусочное шоу с эспрессо
- 4. UI Тестирование с помощью Эспрессо
- 5. Эспрессо-тестирование - Android
- 6. Эспрессо-динамическое тестирование счетчика
- 7. Тестирование эспрессо-андроида
- 8. Эспрессо-тестирование, используемое во фрагменте
- 9. Android Тестирование: UIAutomator против Эспрессо
- 10. Тестирование текста автозаполнения с помощью инструмента эспрессо
- 11. Тестирование с помощью эспрессо в Android-ошибке
- 12. Котлин + эспрессо: Нет действий не найдено
- 13. Android-тестирование. Эспрессо. Изменить текст в TextView
- 14. Эспрессо-тестирование на веб-просмотре в ViewPager
- 15. Эспрессо-тестирование того, что ImageView содержит drawable
- 16. Тестирование на эспрессо для Android - контрольные кнопки
- 17. Блок Тестирование HTTP-действий
- 18. Как проверить домашнюю кнопку на панели действий с эспрессо?
- 19. Тестирование recyclerView с эспрессо, как выполнить щелчок или сделать утверждения
- 20. Эспрессо Лучшая архитектура кода
- 21. Тестирование асинхронных действий с redux thunk
- 22. Как включить тестовую запись эспрессо
- 23. Andriod: проблема с эспрессо-тестированием
- 24. Запуск тестов эспрессо на нескольких эмуляторах
- 25. Android почему тест с эспрессо
- 26. HTML Из нескольких действий
- 27. Android Эспрессо тестирование 'не удается разрешить символ 'InstrumentationRegistry''
- 28. Может ли CircleCI выполнить тестирование устройства/эспрессо для Android-проекта?
- 29. Тестовый тест эспрессо с ошибкой
- 30. Организация нескольких действий
Возможно ли это сейчас? с Espresso 2. У меня есть какое-то приложение вроде этого, когда пользователь нажимает на файл, который он перемещает на другое действие, и мне нужно проверить этот интерфейс. Есть идеи? – AQU
@AQU Я долгое время не работал с 'Espresso'. Я рекомендую ознакомиться с примерами Espresso 2. –
Yaa, теперь он работает для меня. Я могу делать все, что хочу. – AQU