fbpx

TestNG – bibilioteka do uruchamiania testów

Z tego wpisu dowiesz się jak stworzyć swój pierwszy projekt i jak dodać do niego bibliotekę TestNG. Następnie powiemy sobie o kilku adnotacjach, które będą nam niezbędne do napisania swojego pierwszego testu automatycznego.

Nowy projekt w Intellij

Otwórz Intellij i wybierz opcję Stwórz nowy projekt / Create new project. W pierwszym oknie tworzenia nowego projektu upewnij się, że po lewej stronie jako typ został wybrany Java. Jako project SDK wskaż ścieżkę do Javy, którą powinieneś mieć zainstalowaną po konfiguracji środowiska. Po wybraniu SDK i zaznaczeniu projektu jako Java klikamy na przycisk Next/Dalej. W następnym oknie wybieramy Next/Dalej
i przechodzimy do miejsca w którym możemy nadać nazwę projektowi np. uitestmożemy też zmodyfikować lokalizację projektu.
Po stworzeniu nowego projektu klikamy na zakładkę 1:Projekt, aby pokazać zawartość projektu. Rozwijamy drzewko z projektem i klikamy prawym przyciskiem myszy na folder src. Z rozwijanego menu wybieramy New -> Java class i następnie nadajemy mu nazwę np. FirstTest i potwierdzamy przyciskiem Ok. Powoduje to stworzenie pierwszej klasy czyli „pojemnika” w którym będziemy mogli wykonywać nasz test.

Pierwsza metoda

Teraz spróbujemy dodać naszą pierwszą metodę. Metoda jest pewnego rodzaju blokiem kodu, którego będziemy mogli reużywać. Jak taki blok kodu może wyglądać?

public void ourFirstTest() {}

Nasza metoda ma nazwę ourFirstTest (nasz pierwszy test) i wewnątrz {} będziemy musieli umieścić kod, który będzie wykonywał nasz test w przeglądarce internetowej. Dodajmy na razie kod, który wypisze cokolwiek na ekranie, aby zobaczyć jak to może wyglądać.

public void ourFirstTest() {
      System.out.println(„Otwieram przeglądarke”);
      System.out.println(„Wprowadzam adres strony”);
      System.out.println(„Wprowadzam wyszukiwana frazę”);
      System.out.println(„Wybieram Enter”);
      System.out.println(„Wybieram pierwszy wynik”);
      System.out.println(„Sprawdzam tytuł strony”);
}

Dodanie TestNG do projektu

Jednym ze sposobów uruchomienia kodu znajdującego się wewnątrz metody jest oznaczenie jej jako metoda testowa. W takiej sytuacji Intellij rozpozna naszą metodę jako testową
i będziemy mogli ją uruchomić za pomocą znaczka „play” przy deklaracji metody.
Aby oznaczyć nasz kod jako testowy musimy skorzystać z biblioteki TestNG. Jak to zrobić? 
Należy dodać oznaczenie @Test nad metodą. Po dodaniu tego oznaczenia nasz kod będzie wyglądał następująco:
@Test
public void ourFirstTest() {
      System.out.println(„Otwieram przeglądarke”);
      System.out.println(„Wprowadzam adres strony”);
      System.out.println(„Wprowadzam wyszukiwana frazę”);
      System.out.println(„Wybieram Enter”);
      System.out.println(„Wybieram pierwszy wynik”);
      System.out.println(„Sprawdzam tytuł strony”);
}
Możesz zauwazyć, że @Test podświetla się na czerwono. Aby to naprawić ustaw kursor w środku @Test i wybierz czerwoną lampkę. Z dostępnych opcji wybierz dodanie TestNG do classpath. Po dodaniu TestNG cała klasa powinna wyglądać następująco:

import org.testng.annotations.Test;

public class FirstTest { @Test
    public void ourFirstTest() {
        System.out.println(„Otwieram przeglądarke”);
        System.out.println(„Wprowadzam adres strony”);
        System.out.println(„Wprowadzam wyszukiwaną frazę”);
        System.out.println(„Wybieram Enter”);
        System.out.println(„Wybieram pierwszy wynik”);
        System.out.println(„Sprawdzam tytuł strony”);
    }
}

Uruchomienie metody

W celu uruchomienia metody naciśnij na znaczek play znajdujący się przy metodzie i następnie wybierz opcję run ourFirstTest(). Po wybraniu tej opcji kod powinien się uruchomić i na dole powinniśmy zobaczyć rezultat działania naszego programu w postaci wypisanych wartości na ekranie w kolejności w jakiej zostały zdefiniowane.
Możemy wewnątrz klasy mieć kilka metod oznaczonych jako testowe. Na przykład możemy dodać kolejną:
@Test
public void ourSecondTest() {
    System.out.println(„Jestem drugim testem”);
}
Uruchamiamy ją analogicznie do poprzedniej metody. Jeśli jednak chcielibyśmy uruchomić wszystkie metody testowe wewnątrz danej klasy to wystarczy wybrać znaczek play znajdujący się obok nazwy klasy.

Metoda uruchamiana przed każdym testem

Możemy mieć sytuację w której będziemy chcieli uruchamiać konkretny kawałek kodu przed każdym testem. Aby to zrobić wystarczy że oznaczymy wybraną metodą adnotacją @BeforeMethod. Taka metoda będzie wykonywana przed każdą metodą testową znajdującą się wewnątrz naszej klasy. Metoda wykonująca się przed każdym testem może wyglądać następująco:
@BeforeMethod
public void setup() {
    System.out.println(„Otwieram przeglądarke”);
}
Teraz gdy uruchomiy pojedynczy test wewnątrz tej klasy to metoda setup uruchomi się automatycznie przed tym testem. Jeżeli skorzystamy ze znaczka play znajdującego się na poziomie klasy to nasza metoda setup uruchomi się przed każdą metodą oznaczoną adnotacją @Test. Ta metoda służy do wykonywania kawałka kodu przygotowującego test. W naszym przypadku może to być stworzenie przeglądarki i otwieranie konkretnej strony internetowej.

Metoda uruchamiana po każdym teście

Analogicznie możemy mieć sytuację w której będziemy chcieli uruchamiać konkretny kawałek kodu po każdym teście. Aby to zrobić wystarczy, że oznaczymy wybraną metodą adnotacją @AfterMethod. Taka metoda będzie wykonywana po każdej metodzie testowej znajdującej się wewnątrz naszej klasy. Metoda wykonująca się po każdym teście może wyglądać następująco:
@AfterMethod
public void tearDown() {
    System.out.println(„Zamykam przeglądarke”);
}
Teraz gdy uruchomiy pojedynczy test wewnątrz tej klasy to metoda tearDown uruchomi się automatycznie po kazdym tescie. Jeżeli skorzystamy ze znaczka play znajdującego się na poziomie klasy to metoda tearDown uruchomi się po każdej metodzie oznaczonej adnotacją @Test. Ta metoda służy do wykonywania kawałka kodu czyszczącego środowisko po wykonaniu testu. W naszym przypadku może to być zamknięcie przeglądarki.

Podsumowanie

Mam nadzieję, że udało Ci się stworzyć swój pierwszy projekt oraz dodać bibliotekę TestNG do projektu. Adnotacje, które pokazałem w tej wiadomości pochodzą z biblioteki TestNG i umożliwiają nam uruchomienie odpowiednich kawałków kodu za pomocą znaczka play w intelij. Poznaliśmy również adnotacje takie jak @BeforeMethod i @AfterMethod które dają nam możliwość między innymi przygotowania przeglądarki do pracy i jej zamknięcia po wykonaniu każdego testu.

5 1 vote
Article Rating
Subscribe
Powiadom o
guest
0 komentarzy
Inline Feedbacks
View all comments