Опубликован: 06.05.2014 | Доступ: свободный | Студентов: 2619 / 601 | Длительность: 10:33:00
Самостоятельная работа 3:

Основы тестирования и отладки приложений на смартфоне

< Лекция 3 || Самостоятельная работа 3: 123 || Лекция 4 >

Добавим тест начальных условий

Этот тест проверяет, что тестируемое приложение инициализировано корректно. Метод будет проверять следующее:

  • инициализирован слушатель события выбора элемента из списка, этот слушатель вызывается когда в спинере выбирается какой-то элемент;
  • инициализирован адаптер, предоставляющий значения для спинера;
  • адаптер содержит правильное количество записей.

Код метода:

public void testPreConditions() {
	assertTrue(mSpinner.getOnItemSelectedListener() != null);
	assertTrue(mPlanetData != null);
	assertEquals(mPlanetData.getCount(),ADAPTER_COUNT);
} 
 

В класс тестов необходимо добавить элемент:

public static final int ADAPTER_COUNT = 9;

Добавим тест интерфейса пользователя

Создадим UI тест, который выбирает элементы из виджета спинер. Тест посылает события нажатия клавиш и проверяет, что выбор соответствует ожидаемым результатам.

Для работы со спинером тест должен запросить фокус и затем установить его в известную позицию, для этого используются методы requestFocus() и setSelection(). Оба эти метода взаимодействуют с представлениями тестируемого приложения, поэтому должны вызываться специальным образом.

Код для получения фокуса и установки выделения выглядит следующим образом:

mActivity.runOnUiThread(
		   new Runnable() {
		     public void run() {
		        mSpinner.requestFocus();
		        mSpinner.setSelection(INITIAL_POSITION);
		     } 
		   } 
		  ); 
 

Необходимо добавить его в метод:

public void testSpinnerUI() {
   …
}
 

Необходимо добавить в класс тестов элемент:

public static final int INITIAL_POSITION = 0;

Далее необходимо сделать выбор элемента спинера для этого передадим событие нажатия кнопки в спинер:

 this.sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
for (int i = 1; i <= TEST_POSITION; i++) {
this.sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
} 
this.sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);

Необходимо добавить в класс тестов элемент:

public static final int TEST_POSITION = 5;

Необходимо импортировать:

import android.view.KeyEvent;

Проверка результатов. Запросить текущее состояние спинера и сравнить его с ожидаемым значением. Вызов метода getSelectedItemPosition() позволит получить текущую выбранную позицию, а метод getItemAtPosition() возвращает элемент, соответствующий этой позиции (представленный в виде строки). Метод assertEquals(); проверяет совпадает ли полученное значение с ожидаемым "Saturn".

Добавьте в метод public void testSpinnerUI() следующий код:

mPos = mSpinner.getSelectedItemPosition();
mSelection = (String)mSpinner.getItemAtPosition(mPos);
TextView resultView = (TextView)mActivity.findViewById
(com.android.example.spinner.R.id.SpinnerResult);
String resultText = (String) resultView.getText();
assertEquals(resultText,mSelection);
 

Необходимо добавить в класс тестов следующие элементы:

private String mSelection;

private int mPos;

И импортировать:

import android.widget.TextView;

< Лекция 3 || Самостоятельная работа 3: 123 || Лекция 4 >