Testing

How to: Czyli framework White dla aplikacji desktopowych – część 2

Grudzień 18, 2015 1
Podziel się:

Kolejną metodą będzie funkcja zamykająca okno testowanej aplikacji. Jest ona znacznie krótsza – jest to wersja podstawowa. Przed nazwą metody dodajemy adnotację [TestCleanup]. Wyszukujemy nazwę aplikacji na liście otwartych i aktywnych instancji i wywołujemy na niej funkcję Close(). Oczywiście jest to wersja dość uboga – może przecież okazać się, że okno jest już zamknięte (aplikacja scrashowała się podczas testu i okno zostało zamknięte), więc należałoby sprawdzić, czy okno nie jest nullem. Ale na potrzeby niniejszego artykułu wystarczy nam opcja podstawowa.

Rys.3. TestBase – funkcja czyszcząca

Rys.3. TestBase – funkcja czyszcząca

Następnym etapem jest stworzenie klasy zawierającej metody dla naszego testu. Można nazwać ją dowolnie, nazwa ma być intuicyjna. Nasz test będzie najprostszym z możliwych ­– będzie to dodanie dwóch liczb pojedynczych i sprawdzenie czy suma będzie taka, jaka być powinna. W tym celu tworzymy dwuparametrową metodę typu void. Tworzymy instancję okna na podstawie tytułu aplikacji (linia 83). Poniżej tworzymy obiekty typu UIItem wyszukując w oknie kontrolki na podstawie tekstu (linia 84 i 85) oraz na podstawie automationID (linia 86 i 87). Aby pobrać automationID wykorzystujemy program Inspect.exe, o którym wspomniano we wcześniejszych wpisach. Po kliknięciu w znak równości wywołano funkcję WaitWhileBusy() – funkcja ta czeka, dopóki okno jest zajęte. Jest to istotny element synchronizacji i przydaje się w bardziej czasochłonnych komendach. Na koniec użyto asercji AreEqual(), aby sprawdzić poprawność dodawania. Ciekawostka: jeśli zamiast resultInt.ToString() użyjemy tylko resultInt rezultat testu będzie fail – 15 i „15” to tutaj całkiem odmienne wartości. Metoda prezentuje się następująco:

Rys. 4. Metoda dodająca

Rys. 4. Metoda dodająca

Ostatnim etapem będzie napisanie testu. Przechodzimy do pliku, który jest domyślnie tworzony wraz z projektem. Dodajemy dziedziczenie klasy TestBase (linia 7). Tworzymy obiekt naszej klasy z metodą dodającą (linia 9). W metodzie wywołujemy funkcję, podając w parametrach liczby do dodania (linia 14).

Rys. 5. Test kalkulatora

Rys. 5. Test kalkulatora

Jest to najprostszy przykład wykorzystania frameworka TestStack.White. Poniżej podane zostaną przykłady interakcji z mniej oczywistymi kontrolkami, np.:

  • Combobox

dateOption – to podana w parametrze funkcji wartość do wybrania z combobox (string)

Rys. 6. Combobox

Rys. 6. Combobox

  • Menu
    Rys. 7. Menu

    Rys. 7. Menu

Oceń ten post
Kategorie: Testing
Paulina Łojszczyk
Autor: Paulina Łojszczyk
W Sii pracuję od niemalże 5 lat, moją specjalizacją są testy aplikacji mobilnych. Ponadto zajmuję się także poznawaniem i rozwijaniem testów w narzędziu Tosca. Prywatnie jestem szczęśliwą żoną i mamą rocznej Hani.

Imię i nazwisko (wymagane)

Adres email (wymagane)

Temat

Treść wiadomości

komentarze(1)

avatar'
PM
31 marca 2016 Odpowiedz

[TestCleanup] - co tam szukasz okna głównego aplikacji - co sądzisz o wykonaniu cleanupa przez zabicie testowanego procesu? Dajesz też przykład dorzucenia metod do nowej klasy (jak rozumiem zagnieżdżonej w klasie TestBase) - na tym przykładzie fajniej wyglądałoby zastosowanie Page Object Pattern - pokazanie, że to świetne podejście nie tylko w testach Webowych - buttony zastosowane jako propertiesy maniWindowa - wtedy w [TestMethod] nie wywołujesz metody przygotowanej z boku tylko wykonujesz operacje, jakie wykonuje user - wtedy masz świetny test, czytelny dla osoby, która go nie kodowała; za analizę testu może wziąć się osoba nietechniczna/mniej techniczna

Zostaw komentarz