Utwórz pakiet testów JUnit z przykładem: @RunWith @SuiteClasses

Spisie treści:

Anonim

W Junit zestaw testów umożliwia agregację wszystkich przypadków testowych z wielu klas w jednym miejscu i wspólne uruchamianie.

Aby uruchomić pakiet testowy, musisz dodać adnotację do klasy za pomocą poniższych adnotacji:

  1. @Runwith (Suite.class)
  2. @SuiteClasses (test1.class, test2.class…) lub

    @ Suite.SuiteClasses ({test1.class, test2.class

    …})

Dzięki powyższym adnotacjom wszystkie klasy testowe w zestawie zaczną się wykonywać jedna po drugiej.

Kroki, aby utworzyć pakiet testów i test runner

Krok 1) Utwórz prostą klasę testową (np. MyFirstClassTest) i dodaj metodę z adnotacją @test.

Krok 2) Utwórz kolejną klasę testową do dodania (np. MySecondClassTest) i utwórz metodę z adnotacją @test.

Krok 3) Aby utworzyć testSuite, musisz najpierw oznaczyć klasę adnotacją @RunWith (Suite.class) i @SuiteClasses (class1.class2

…).

Krok 4) Utwórz klasę Test Runner, aby uruchomić nasz zestaw testów, jak podano poniżej;

Objaśnienie kodu:

  • Linia kodu 8: Deklaracja głównej metody testu klasy, która uruchomi nasz test JUnit.
  • Linia kodu 9: Wykonywanie przypadków testowych przy użyciu JunitCore.runclasses, które przyjmują nazwę klasy testowej jako parametr (w powyższym przykładzie używasz TestSuiteExample.class pokazanego w kroku 3).
  • Linia kodu 11: Przetwarzanie wyniku za pomocą pętli for i drukowanie nieudanego wyniku.
  • Linia kodu 13: Drukowanie pomyślnego wyniku.

Wynik : Oto dane wyjściowe, które pokazują pomyślny test bez śladu awarii, jak podano poniżej:

Przykład pakietu testowego JUnit

Rozważ bardziej złożony przykład

JunitTest.java

JunitTest.java to prosta klasa opatrzone @RunWith i @Suite adnotacji. Możesz podać liczbę .classes w zestawie jako parametry, jak podano poniżej:

pakiet guru99.junit;import org.junit.runner.RunWith;import org.junit.runners.Suite;@RunWith (Suite.class)@ Suite.SuiteClasses ({SuiteTest1.class,SuiteTest2.class,})public class JunitTest {// Ta klasa pozostaje pusta, jest używana tylko jako uchwyt na powyższe adnotacje}

SuiteTest1.java

SuiteTest1.java to klasa testowa z metodą testową do wydrukowania wiadomości, jak podano poniżej. Będziesz używać tej klasy jako zestawu w wyżej wymienionej klasie.

pakiet guru99.junit;import static org.junit.Assert.assertEquals;import org.junit.Test;public class SuiteTest1 {public String message = "Saurabh";JUnitMessage junitMessage = nowy JUnitMessage (wiadomość);@Test (oczekiwano = ArithmeticException.class)public void testJUnitMessage () {System.out.println ("Trwa drukowanie komunikatu Junit");junitMessage.printMessage ();}@Testpublic void testJUnitHiMessage () {wiadomość = „Cześć!” + wiadomość;System.out.println ("Trwa drukowanie komunikatu Junit Hi");assertEquals (wiadomość, junitMessage.printHiMessage ());System.out.println („Suite Test 2 powiódł się” + komunikat);}}

SuiteTest2.java

SuiteTest2.java to kolejna klasa testowa podobna do SuiteTest1.java, która ma metodę testową do wydrukowania wiadomości, jak podano poniżej. Będziesz używać tej klasy jako zestawu w JunitTest.java .

pakiet guru99.junit;import org.junit.Assert;import org.junit.Test;public class SuiteTest2 {@Testpublic void createAndSetName () {Oczekiwany ciąg = „Y”;Ciąg rzeczywisty = "Y";Assert.assertEquals (oczekiwane, rzeczywiste);System.out.println ("Suite Test 1 powiódł się" + faktyczny);}}

Wynik

Po wykonaniu JunitTest .java, który zawiera pakiet zawierający test1.java i test2.java , otrzymasz następujące dane wyjściowe:

Podsumowanie

W tym samouczku nauczyłeś się podstaw testowania wiązek przewodów i zestawów testów szczegółowo na przykładzie.

  • Wiązka testowa lub automatyzacja Testowanie to oprogramowanie lub zbiór oprogramowania, które umożliwia użytkownikowi testowanie danych z wieloma wejściami i sterowanie wykonaniem
  • Test harness w rzeczywistości umożliwia strukturę testową, która wykonuje całą pracę związaną z wykonywaniem testów przy użyciu biblioteki testów i generowaniem raportu z testów
  • W Junit zestaw testów umożliwia agregację wszystkich przypadków testowych wielu klas w jednym miejscu i wspólne uruchamianie.