Примеры для Robotium - PullRequest
       16

Примеры для Robotium

9 голосов
/ 22 февраля 2010

Я нашел инструмент для тестирования инструментов под названием Robotium. Он прост и удобен для тестирования приложений для Android в «черном ящике». Мы можем использовать его следующим образом:

    solo.clickOnText("Other");
    solo.clickOnButton("Edit");
    assertTrue(solo.searchText("Edit Window"));
    solo.enterText(1, "Some text for testing purposes")
    solo.clickOnButton("Save");
    assertTrue(solo.searchText("Changes have been made successfully"));
    solo.clickOnButton("Ok");
    assertTrue(solo.searchText("Some text for testing purposes"));

Может ли кто-нибудь еще иметь представление об этом? Кто-нибудь может рассказать, как мы можем использовать его для просмотра веб-страниц, просмотра списков и т. Д.

Ответы [ 5 ]

15 голосов
/ 22 февраля 2010

Пожалуйста, смотрите вики-страницу QA для общих вопросов и ответов о том, что поддерживает Robotium: http://code.google.com/p/robotium/wiki/QuestionsAndAnswers

Также перейдите на страницу «Начало работы»: http://code.google.com/p/robotium/wiki/Getting_Started

Там вы найдете пример тестового проекта, который вы скачаете, и посмотрите на идеи. Вы также можете скачать javadoc с: http://code.google.com/p/robotium/downloads/list, чтобы увидеть, какие функции есть в данный момент.

Для учебников, пожалуйста, посетите: http://code.google.com/p/robotium/wiki/RobotiumTutorials

С уважением, Renas

14 голосов
/ 05 апреля 2011

Могу сказать, что вы не умеете делать с Robotium:)

  1. При перекрестном тестировании Robotium может работать только с одним и тем же приложением-сертификатом, в противном случае вы получите исключение для событий ввода (например, вы не можете нажимать на экранную клавиатуру)

  2. В Robotium нет механизма для обработки ожидаемых / неожиданных оповещений / всплывающих окон / диалогов. Например, в тестах JavaScript iOs есть очень простой логический флаг и обратный вызов для обработки предупреждений

  3. У Robotium есть большая проблема с методами автоматической прокрутки (возможно, в настоящее время это исправлено), например, если вы ищете текст, который не отображается, Robotium будет складываться в конце представления прокрутки и делать assertTrue ( false) чтобы остановить прокрутку

  4. В Robotium есть логика assertTrue (false) для сообщения о проблемах / неожиданных ситуациях вместо того, чтобы возвращать какое-либо значение Enum или логическое значение (успех / сбой), поэтому для хороших стресс-тестов, которые запускаются 24/7, необходимо добавить свой методы, которые не будут останавливать тестирование, просто обработайте 'method fail to click xy' значение результата

  5. Вам нужно будет реализовать некоторую логику для щелчка по элементам в представлении прокрутки / списка. Из-за щелчков Robotium в центре представления вы всегда получите исключение или assertTrue (false) при попытке щелкнуть представление с отображением только 20% части

В целом Robotium очень классный и полезный, и мне он очень нравится :) И я не могу представить свою жизнь без этой великолепной библиотеки!

2 голосов
/ 25 февраля 2010

Метод searchText также ищет ListViews. Вы можете использовать его вместе с утверждениями, чтобы гарантировать, что ваши ListViews содержат правильное содержимое

1 голос
/ 16 июля 2010

Для того, чтобы нажать Список. Если ваша деятельность имеет тип ListActivity, вы можете использовать clickInList с одним параметром, который является индексом строки, по которой нужно щелкнуть. В других случаях используйте clickInList с двумя параметрами - индексом экрана списка и номером строки. Для WebView, если вы загружаете страницу, вы должны использовать метод waitForText () для проверки содержимого.

больше примеров: http://bitbar.com/blog/54/automated-ui-testing-android-applications-robotium

0 голосов
/ 24 ноября 2012
  • Просмотры

Для списков просмотра вы можете использовать следующий метод solo.getCurrentListViews(), который возвращает количество представлений списка на текущем экране, а затем выполняет итерацию или получает другие типы объектов ( виджеты Android ), например, вам нужно чтобы щелкнуть изображений из всех списков на экране, которые не перенаправляют вас на другой вид деятельности и только изменяют состояние других объектов:

ArrayList<ListView> lw = solo.getCurrentListViews(); // get all list views
// logging to logcat
Log.i("stats", "number of list views on the current screen: " + aLw.size());
if (aLw.size() != 0) 
for (ListView l: aLw) {
    // Take all image views from list and click each
    ArrayList <ImageView> aIw = solo.getCurrentImageViews(l);
    Log.i("stats", "list view " + l + " contains " + iw.size() + " image views.");
    if (aIw.size() != 0)
    for (int i = 0; i < aIw.size(); ) {
         // clicking
         solo.clickOnView(aIw.get(i));
         Log.i("click", "image view " + i " clicked."); 
    }
}

Вы можете ввести текст для editText просмотра или получить текст из textViews. Вы можете комбинировать Robotium с API Java и Android. Например, проверьте видимость изображений на экране, используя метод getVisibility () и сравнив его с тремя основными состояниями View.GONE , View.VISIBLE , View.INVISIBLE . Или вы можете проверить соединение, используя метод Java HttpURLrequest перед выполнением ваших тестов.

  • Другое

Если у вас есть источник, вы можете брать объекты из любого макета, зная его идентификатор! Также существует много удивительных вещей, таких как solo.waitForActivity(), solo.assertMemoryNotLow(), solo.takeScreenShot().

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...