Samouczek Robotium: Twój pierwszy Android
Co to jest Robotium?
Robotium to framework testowy Androida do automatyzacji przypadków testowych dla aplikacji natywnych i hybrydowych. Używając Robotium, programista może tworzyć silne automatyczne przypadki testowe GUI dla Android Aplikacje. Ponadto programista mógł napisać scenariusz testów funkcjonalnych, systemowych i akceptacyjnych, rozpowszechniając wiele Android деятельности.
Ramy testowania robotów
Standardowa Android ramy testowania mają pewne ograniczenia, jak poniżej
- Nie można obsłużyć wielu czynności
- Wydajność wykonywania testów jest niska
- Przypadki testowe są złożone i trudne do wdrożenia
Robot jest lepszym wyborem do przeprowadzenia testów Android aplikacja
Robotium jest platformą open source i jest uważane za rozszerzenie Android ramy testowe. Korzystając z Robotium, programista może tworzyć solidne, automatyczne przypadki testowe GUI dla Android Aplikacje. Ponadto programista może pisać scenariusze testów funkcjonalnych, systemowych i akceptacyjnych, obejmujących wiele Android деятельности.
.png)
Klasy przypadków testowych Robotium
Robotium używa zestawu klas (com.jayway.android.robotium.solo) dla testów. Ta klasa obsługuje przypadki testowe obejmujące wiele działań. Solo jest zintegrowane z ActivityInstrumentationTestCase2.
Tester może pisać przypadki testowe bez znajomości projektowania aplikacji (testowanie black box) za pomocą klas przypadków testowych Robotium. Jest to wyjątkowa funkcja w porównaniu do Android klasy przypadków testowych.
Jak korzystać z Robotium
Aby używać Robotium w swoim Android projektu testowego, wykonaj poniższe czynności
Wykorzystanie Robotium do przeprowadzenia testów Android aplikacja. Aby zagwarantować jakość Twojego Android aplikacji, należy postępować zgodnie z poniższą procedurą
- Specyfikacja testu projektowego
- Opracuj program testowy
- Wykonać Przypadek testowy na urządzeniu docelowym
- Zbierz wynik testu
KROK 1) Specyfikacja testu projektowego
- To pierwszy krok do przetestowania aplikacji. W tym kroku definiujesz cel do przetestowania. W Twoim Android aplikacji należy przetestować wiele celów, takich jak interfejs użytkownika, aktywność, komponenty i usługi. Jasne zdefiniowanie celu w aplikacji pomoże osiągnąć szeroki zakres testów.
- Zaplanuj rodzaje testów, które należy przeprowadzić (test jednostkowy, test funkcjonalny, test systemowy).
- Projektuj przypadki testowe pod kątem maksymalnego pokrycia, ale minimalizuj liczbę przypadków testowych. Im częściej kod jest testowany, tym większe są szanse na wczesne wykrycie błędu.
KROK 2) Napisz program TESTOWY
W tej części dowiesz się, jak napisać plik Android program testowy za pomocą Android Junita Test i Robot. Załóżmy, że już opracowałeś Android nazwa programu WitamAndroid. Program ten posiada kilka funkcji opisanych poniżej:
- Wyświetl tekst „Hello world!” na ekranie.
- Wyświetl komunikat WitamAndroid gdy użytkownik naciśnie przycisk „Start”.
Wymagania systemowe
- Android platforma jest fabrycznie zintegrowana JUnit Ramy 3.0.
- W celu utworzenia Android Projekt testowy z Eclipse, na komputerze musi być zainstalowane:
- Ostatnia wersja Android Platforma (obecnie Android 8.1)
Możesz pobieranie Eclipse IDE z wbudowanym ADT (Android Narzędzia deweloperskie). Zawiera to, co niezbędne Android Komponenty SDK i wersja Eclipse IDE.
Aby uzyskać środowisko testowe Robotium, musisz pobrać bibliotekę Robotium z strona Robotium.
Stwórz Android Projekt testowy
- Kliknij Plik -> Nowy -> Inne
- Wybierz: Android -> Android Przetestuj projekt zgodnie z poniższym rysunkiem -> Wybierz Dalej
Wpisz nazwę swojego projektu testowego. Zgodnie z konwencją nazewnictwa projekt testowy powinien nosić nazwę „HelloAndroidTest"
Wybierz testowaną aplikację docelową. W tym przypadku jest to WitamAndroid kliknij Zakończ
Utwórz zestawy testów
W oparciu o specyfikację testu zacząłeś tworzyć zestawy testów dla swojego programu testowego. Możesz wybrać różne ramy testowe. W tym samouczku wybieram standard Android framework testowy AktywnośćInstrumentacjaTestCase2. Musisz dodać plik biblioteki Robotium do katalogu libs w folderze projektu, na wypadek gdybyś chciał przetestować framework Robotium. (Tworzysz folder lib w folderze projektu).
Przypadek testowy definiuje urządzenie do uruchamiania wielu testów. Aby zdefiniować przypadek testowy, należy postępować zgodnie ze strukturą programu poniższą:
- Zaimplementuj podklasę
TestCase
. - Zdefiniuj zmienne instancji, które przechowują stan urządzenia
- Zainicjuj stan urządzenia, zastępując setUp()
- Porządkowanie po teście poprzez zastąpienie metody łezDown().
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); } }
Dodawanie przypadków testowych
- W tym samym pakiecie z TestSuite tworzymy klasy TestCase
- Aby przetestować określoną aktywność, np. HelloAndroid, utwórz zakres przypadku testowego ActivityInstrumentationTestCase2Android>
- W tej klasie tester może uzyskać aktywność testową za pomocą metody getActivity().
- Możesz dowolnie utworzyć test dla działania testowego, tworząc metodę o nazwie „test + oryginalna nazwa metody”
- W metodzie testowej tester może użyć Android JUnit funkcja porównująca wartość rzeczywistą z wartością oczekiwaną. Metody te przedstawiono poniżej.
Powyższe zestawy testów potwierdziły, że GUI aplikacji musi wyświetlać tekst „Hello World!” i zawiera nazwę przycisku „Start”.
KROK 3) Uruchom test
Po zakończeniu pisania programu testowego uruchom test, wykonując poniższe czynności
- Skontaktuj się Android urządzenie do komputera (lub uruchom emulator, jeśli nie masz prawdziwego urządzenia).
- W swoim IDE kliknij prawym przyciskiem myszy „Uruchom jako”.Android Test jednostkowy
Oprócz uruchamiania testu na IDE, możesz uruchomić test na wierszu poleceń. W tym programie testowym pakiet testowy to com.example.helloandroid.test . W Linux terminalu, możesz użyć następującego polecenia, aby uruchomić wszystkie testy w tym pakiecie:
$ adb shell am instrument -w -e pakiet com.example.helloandroid.test
KROK 4) Uzyskaj wynik testu
Po wykonaniu testu otrzymasz wyniki testu.
W tym programie testowym wykonywane są 4 metody testowe. W tym przypadku wszystkie przypadki testowe zostają zaliczone.
W przypadku niepowodzenia przypadku testowego wyświetlane są dane wyjściowe pokazujące, które przypadki testowe zakończyły się niepowodzeniem
Przykłady kodu źródłowego
Artykuły te zawierają kilka przykładów kodu źródłowego, które pomogą Ci lepiej zrozumieć samouczek i szybciej nadrobić wiedzę techniczną
- CześćAndroid: Aplikacja w trakcie testowania .
- CześćAndroidTestowanie: Program testowy przy użyciu Android Ramy testowe