Урок по Robotium: Вашият първи Android Рамка
Какво е Robotium?
Robotium е рамка за тестване на Android за автоматизиране на тестови случаи за собствени и хибридни приложения. Използвайки Robotium, разработчикът може да създаде силен случай за автоматично тестване на GUI за Android приложения. В допълнение, разработчикът може да напише функционален, системен и тестов сценарий за приемане, разпространявайки много Android дейности.
Рамка за тестване на Robotium
Standard Android рамката за тестване има някои ограничения, както е показано по-долу
- Не може да се справи с множество дейности
- Изпълнението на теста е бавно
- Тестовите случаи са сложни и трудни за изпълнение
Роботиумрамка е по-добрият избор за провеждане на тестове Android прилагане
Robotium е рамка с отворен код и се счита за разширение на Android тестова рамка. Използвайки Robotium, програмистът може да създава стабилни автоматични GUI тестови случаи за Android приложения. Освен това разработчикът може да напише функционални, системни и тестови сценарии за приемане, обхващащи множество Android дейности.
.png)
Класове за тестови случаи на Robotium
Robotium използва набор от класове (com.jayway.android.robotium.solo) за тестване. Този клас поддържа тестови случаи, които обхващат множество дейности. Solo е интегриран с ActivityInstrumentationTestCase2.
Тестерът може да напише тестови случаи без познания за дизайна на приложението (тестване в черна кутия), като използва класове тестови случаи на Robotium. Това е изключителна характеристика в сравнение с Android тестови класове.
Как да използвате Robotium
За да използвате Robotium във вашия Android тестов проект, трябва да следвате стъпките по-долу
Използване на Robotium за провеждане на тестване на Android приложение. За да гарантираме качеството на вашите Android приложение, трябва да следвате процедурата по-долу
- Спецификация за изпитване на дизайна
- Разработете тестова програма
- Изпълнение Тестов случай на целево устройство
- Съберете резултата от теста
СТЪПКА 1) Спецификация на теста за проектиране
- Това е първата стъпка за тестване на вашето приложение. В тази стъпка дефинирате целта, която да бъде тествана. Във вашия Android приложение, има много цели, които трябва да бъдат тествани, като потребителски интерфейс, активност, компоненти, услуги. Ясното дефиниране на целта във вашето приложение ще ви помогне да постигнете широко покритие на теста.
- Планирайте видовете тестове, които трябва да бъдат проведени (единичен тест, функционален тест, системен тест).
- Проектирайте тестови случаи за максимално покритие, но минимизирайте броя на тестовите случаи. Колкото повече код се тества, толкова повече са шансовете за ранно откриване на грешки.
СТЪПКА 2) Напишете TEST програма
Този раздел ви насочва как да напишете Android използване на тестова програма Android Джунит Тест и Robotium. Да приемем, че вече сте разработили Android Име на програмата ЗдравейтеAndroid. Тази програма има някои функции, описани по-долу:
- Показване на текст „Здравей свят!“ на екрана.
- Показване на съобщение ЗдравейAndroid когато потребителят натисне бутона "Старт".
Системни изисквания
- Android платформата идва с предварително интегриран JUnit 3.0 рамка.
- За да създадете Android Тестови проект от Eclipse, вашият компютър трябва да има инсталирани:
- Последна версия Android Платформа (в момента Android 8.1)
Можете да Изтегли Eclipse IDE с вграден ADT (Android Инструменти за разработчици). Тя включва същественото Android SDK компоненти и версия на Eclipse IDE.
За рамката за тестване на Robotium трябва да свалите библиотеката на Robotium от Уеб страница Robotium.
Създаване на Android Тестов проект
- Щракнете върху Файл -> Нов -> Други
- Избирам: Android -> Android Тествайте проекта според фигурата по-долу -> Изберете Напред
Напишете името на вашия тестов проект. Като конвенция за именуване, вашият тестов проект трябва да се казва „HelloAndroidТест"
Изберете целево приложение, което се тества. В този случай това е ЗдравейAndroid щракнете върху Готово
Създайте тестови пакети
Въз основа на вашата тестова спецификация, вие започнахте да създавате тестови пакети за вашата тестова програма. Можете да изберете различни рамки за тестване. В този урок избирам стандартен Android рамка за тестване ActivityInstrumentationTestCase2. Трябва да добавите файл с библиотека Robotium към директория libs във вашата папка на проекта, в случай че искате да тествате с Robotium framework. (Създавате папка lib в папката на вашия проект).
Тестов случай дефинира приспособлението за провеждане на множество тестове. За да дефинирате тестов случай, трябва да следвате програмната структура по-долу:
- Реализирайте подклас на
TestCase
. - Дефинирайте променливи на екземпляр, които съхраняват състоянието на приспособлението
- Инициализирайте състоянието на приспособлението, като замените setUp()
- Почистване след тест чрез замяна на tearDown().
package com.example.helloandroid.test; import com.example.helloandroid.HelloAndroid; import com.jayway.android.robotium.solo.Solo; import android.test.ActivityInstrumentationTestCase2; import android.widget.TextView; public class HelloAndroidTest extends ActivityInstrumentationTestCase2 <HelloAndroid> { private HelloAndroid mActivity; private TextView mView; private String resourceString; private Solo solo; public HelloAndroidTest () { // TODO Auto-generated constructor stub super("com.example.helloandroid",HelloAndroid.class); } @Override protected void setUp() throws Exception { // TODO Auto-generated method stub // super.setUp(); mActivity = this.getActivity(); solo = new Solo(getInstrumentation(),getActivity()); mView = (TextView) mActivity.findViewById(com.example.helloandroid.R.id.textview2); resourceString = mActivity.getString(com.example.helloandroid.R.string.hello_world); } @Override protected void tearDown() throws Exception { // TODO Auto-generated method stub //super.tearDown(); solo.finishOpenedActivities(); } public void testPrecondition() { assertNotNull(mView); } /* test Target application contains a text display "Hello World!"*/ public void testSearchText() { assertEquals(resourceString,(String) mView.getText()); } /* test HelloAndroid Activity on target application is exist*/ public void testCurrentActivity() throws Exception { solo.assertCurrentActivity("wrong activity", HelloAndroid.class); } /* test Application UI contains "Start" button */ /* send event click button to target application */ public void testSearchButton() throws Exception { boolean found = solo.searchButton("Start"); solo.clickOnButton("Start"); assertTrue(found); } }
Добавяне на тестови случаи
- В същия пакет с TestSuite създаваме класове TestCase
- За да тествате определена дейност, т.е. ЗдравейтеAndroid, създайте степен на тестов случай ActivityInstrumentationTestCase2Android>
- В този клас тестерът може да получи тестова активност чрез метода getActivity().
- Можете свободно да създавате тест за тестова дейност чрез създаване на метод с име „тест + оригинално име на метод“
- В тестовия метод, тестерът може да използва Android JUnit функция за сравняване на действителната и очакваната стойност. Тези методи са показани по-долу.
Тези тестови пакети по-горе потвърдиха, че GUI на приложението трябва да показва текст „Hello World!“ и да съдържа име на бутон „Старт“.
СТЪПКА 3) Изпълнете тест
След като приключите с писането на вашата тестова програма, стартирайте теста, като използвате стъпките по-долу
- Свържете Android устройство към вашия компютър (или стартирайте емулатора, в случай че нямате истинско устройство).
- Във вашата IDE щракнете с десния бутон върху àRun asàAndroid Тест за единица
Освен да изпълнявате тест в IDE, можете да стартирате тест в командния ред. В тази тестова програма тестовият пакет е com.example.helloandroid.test. в Linux терминал, можете да използвате следната команда, за да изпълните всички тестове в този пакет:
$ adb shell am instrument -w -e пакет com.example.helloandroid.test
СТЪПКА 4) Получете резултат от теста
След като тестът се изпълни, получавате резултати от теста.
В тази тестова програма се изпълняват 4 тестови метода. В този случай всички тестови случаи са преминати.
В случай че тестовият случай е неуспешен, изходът се показва и ви показва кои тестови случаи са неуспешни
Примери за изходен код
Тези статии включват някои примери за изходен код, които ви помагат да разберете урока по-ясно и бързо да наваксате техническите познания
- ЗдравейтеAndroid: Приложението се тества.
- ЗдравейтеAndroidтест: Използване на тестова програма Android Тестова рамка