what is junit test fixture
W tym samouczku wyjaśniono, kiedy, dlaczego i jak używać osprzętu testowego JUnit z prostymi przykładami osprzętu testowego JUnit, które ułatwiają zrozumienie koncepcji:
Nauczymy się -
- Kiedy i dlaczego musimy używać urządzenia testowego?
- Jakie jest podejście do używania go w naszym kodzie do testu JUnit?
- Kilka przykładów, aby zrozumieć termin „Test Fixture” równolegle połączony kaskadowo z adnotacjami cyklu życia JUnit 4, takimi jak @Before, @After, @BeforeClass, @AfterClass i @Test.
=> Sprawdź WSZYSTKIE samouczki JUnit tutaj.
Czego się nauczysz:
Urządzenie testowe JUnit
Jeśli w klasie JUnit występuje wiele przypadków testowych, może istnieć wspólny obiekt lub obiekty używane przez wszystkie przypadki testowe. W takim przypadku mogą istnieć określone funkcje, które mogą być wspólne dla wszystkich przypadków testowych.
Nie oznacza to, że obiekty testowe muszą być współużytkowane przez wszystkie przypadki testowe. Zmiana obiektu dokonana w jednym teście nie musi być współużytkowana we wszystkich testach, ponieważ testy te są niezależne i mogą być wykonywane w innej kolejności, zgodnie z ich zestawem priorytetów.
html css pytania i odpowiedzi do wywiadu
Holistyczne rozumienie termin „Test Fixture” to ustalony stan w kodzie lub zestaw ustalonych kroków w kodzie, który jest używany jako warunek wstępny, oraz kilka innych zestawów kroków, które są używane jako warunek końcowy dla wszystkich testów.
Innymi słowy, identyfikujemy te zestawy instrukcji, które będą powtarzane dla wszystkich testów, a tym samym próbujemy ustawić ustalone środowisko dla naszych metod testowych.
Plik cel, powód Korzystanie z urządzenia testowego ma na celu wyeliminowanie powielania wspólnego kodu dla wszystkich przypadków testowych.
najlepszy darmowy konwerter plików dla systemu Windows 10
Spróbujmy zrozumieć praktyczną implementację urządzenia testowego w teście JUnit.
setUp (), metoda
- Istnieją testy, które wymagają inicjalizacji określonych obiektów (ciągów znaków, liczb całkowitych lub ArrayList lub dowolnego obiektu w tym zakresie). Możesz stworzyć metodę public void setUp () w którym można zadeklarować zmienne instancji dla wspólnych obiektów. Umieść tę metodę setUp () pod adnotacją @Przed . Z adnotacją @Before, framework uruchomi metodę setUp () przed każdym wykonaniem przypadku testowego.
- Metodę setUp () można również zastosować w przypadku, gdy chcesz uruchomić przeglądarkę z określonym adresem URL jako pierwszy krok do uruchomienia przypadku testowego, który następuje po zalogowaniu się do aplikacji przy użyciu predefiniowanych poświadczeń.
tearDown (), metoda
- Jeśli w teście przydzieliłeś zasoby zewnętrzne, pamiętaj o ich zwolnieniu. Metodę teardown () można dodać w celu oczyszczenia obiektów po zakończeniu wykonywania przypadku testowego. W podobny sposób jak w przypadku metody setUp () dodaj metodę porzucenie publicznej pustki () pod @Po adnotacja. Framework JUnit zapewnia, że po uruchomieniu każdego przypadku testowego metoda w @After jest na pewno wykonywana. Obiekty używane w teście muszą mieć wartość NULL w metodzie teardown (), aby zostały zebrane śmieci z testów.
- Innym dobrym kandydatem do wyczyszczenia obiektów jest zabicie przeglądarki w akcji po zakończeniu przypadku testowego i zwolnienie pamięci poprzez zniszczenie używanych obiektów.
- Nazwy metod setUp () i tearDown () to tylko nazwy zdefiniowane przez użytkownika. Możesz ustawić dowolną nazwę metody, którą chcesz. To tylko adnotacje użyte w metodzie decydują o kolejności wykonywania testów.
Przykłady urządzeń testowych JUnit
W tej sekcji omówimy dwa przykłady testu JUnit 4 i spróbujemy zrozumieć, w jaki sposób zastosować podejście Urządzeń Testowych w naszym kodzie wraz z sekwencją różnych adnotacji cyklu życia @Before, @After, @BeforeClass, @AfterClass, i @Test.
Oczywiście będzie osobny samouczek dotyczący adnotacji, który wyjaśni, co to jest i jak działa każda z adnotacji. Na razie trzymajmy się zrozumienia użycia osprzętu testowego w kodzie.
Test JUnit 4 - przykład 1
W tym przykładzie będziemy mieć urządzenia testowe w klasie z trzema przypadkami testowymi. Metoda setUp () z adnotacją @Before i metoda tearDown () z adnotacją @After.
Kod:
package demo.tests; import static org.junit.Assert.*; import org.junit.After; import org.junit.Before; import org.junit.Test; public class JUnitProgram { @Before public void setUp() { System.out.println('_______________________________________________________
'); System.out.println('This is the setUp() method that runs before each testcase'); } @Test public void test_JUnit1() { System.out.println('This is the testcase test_JUnit1() in this class'); } @Test public void test_JUnit2() { System.out.println('This is the testcase test_JUnit2() in this class'); } @Test public void test_JUnit3() { System.out.println('This is the testcase test_JUnit3() in this class'); } @After public void tearDown() { System.out.println('This is the tearDown() method that runs after each testcase'); System.out.println('_______________________________________________________
'); } }
Wynikowe okno konsoli będzie takie, jak pokazano poniżej:
W oknie konsoli widać, że przed każdym uruchomieniem testu jest wykonywana metoda setUp (), a po zakończeniu każdego testu - tearDown ().
Zatem kolejność wykonywania zgodnie z adnotacją dla każdej metody testowej jest następująca:
- @Przed
- @Test
- @Po
Pamiętaj, że testy tutaj zostały wykonane w kolejności sekwencyjnej, tj. Test_JUnit1 (), test_JUnit2 (), test_JUnit3 (), nie ma zdefiniowanej sekwencji do testu, dlatego mogą być wykonywane w dowolnej kolejności. Każdy test jest odizolowany od drugiego testu.
Test JUnit 4 - przykład 2
Zobaczmy teraz szybko, jak możemy mieć metodę, która uruchamia się jeden raz po raz pierwszy w klasie i inną metodę, która jest uruchamiana jeden raz po wykonaniu wszystkich testów dla klasy.
Kod:
package demo.tests; import static org.junit.Assert.*; import org.junit.After; import org.junit.Before; import org.junit.Test; public class JUnitProgram { @BeforeClass public static void preClass() { System.out.println('This is the preClass() method that runs one time before the class'); } @Before public void setUp() { System.out.println('_______________________________________________________
'); System.out.println('This is the setUp() method that runs before each testcase'); } @Test public void test_JUnit1() { System.out.println('This is the testcase test_JUnit1() in this class'); } @Test public void test_JUnit2() { System.out.println('This is the testcase test_JUnit2() in this class'); } @Test public void test_JUnit3() { System.out.println('This is the testcase test_JUnit3() in this class'); } @After public void tearDown() { System.out.println('This is the tearDown() method that runs after each testcase'); System.out.println('_______________________________________________________
'); } @AfterClass public static void postClass() { System.out.println('This is the postClass() method that runs one time after the class'); } }
Dodaliśmy metodę preClass () pod adnotacją @BeforeClass. Ta metoda jest uruchamiana tylko raz dla klasy przed wykonaniem testu. Działa nawet przed wykonaniem metody w ramach @Before.
Metoda postClass () w adnotacji @AfterClass jest uruchamiana raz na końcu, gdy wszystkie testy, w tym test pod @After, zostaną wykonane i zakończone.
Sekwencja uruchomienia testowego jest następująca:
- @Przed zajęciami
- @Przed
- @Test
- @Po
- @Po zajęciach
Metody w @BeforeClass i @AfterClass są często współdzielone przez klasę, dlatego jeśli metody nie są zadeklarowane jako statyczny wtedy daje błąd inicjalizacji na wykonanie testu.
faza testowania cyklu życia oprogramowania
Zobacz poniższy zrzut ekranu, na którym nie ustawiliśmy metody preClass () w adnotacji @BeforeClass jako statyczny i tym samym test popełnił błąd podczas wykonywania.
Możesz zobaczyć wynik pokazujący błąd inicjalizacji, który można wyeliminować oznaczając metodę jako statyczną. To samo dotyczy metody postClass () w adnotacji @AfterClass.
Wniosek
Staraliśmy się nadać kontekst dobrym praktykom programowania, których należy przestrzegać przy wdrażaniu Urządzenie testowe podejście i podstawową wiedzę na temat użycia i kolejności wykonywania dla adnotacji cyklu życia.
W naszym następnym samouczku dowiemy się o różne sposoby wykonywania testów JUnit w Eclipse. Więc śledźcie serię w miarę postępów z bardziej interesującymi aspektami JUnit.
=> Sprawdź tutaj, aby zobaczyć samouczki szkoleniowe od A do Z JUnit tutaj.
rekomendowane lektury
- Testy JUnit: Jak pisać przypadki testowe JUnit z przykładami
- Samouczek JUnit dla początkujących - co to jest testowanie JUnit
- Python DateTime Tutorial z przykładami
- Java String zawiera () Samouczek dotyczący metody z przykładami
- C # przy użyciu instrukcji i C # wirtualnego samouczka metod z przykładami
- Wprowadzenie do JUnit Framework i jego wykorzystanie w skrypcie Selenium - Samouczek Selenium # 11
- Selenium Find Element By Text Samouczek z przykładami
- Samouczek dotyczący długości tablicy w języku Java z przykładami kodu