Добавим тест интерфейса пользователя
Создадим 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;
Достарыңызбен бөлісу: |