Junit Assert i AssertEquals z przykładem
Czym jest Junit Assert?
Assert to metoda przydatna do określania, czy przypadek testowy został zaliczony, czy nie. Metody assert są dostarczane przez klasę org.junit.Assert, która rozszerza klasę java.lang.Object.
Istnieją różne typy asercji, takie jak logiczne, null, identyczne itp.
Junit udostępnia klasę o nazwie Assert, która udostępnia szereg metod asercji przydatnych przy pisaniu przypadków testowych i wykrywaniu błędów testów
Metody potwierdzenia są dostarczane przez klasę org.junit.Assert który rozciąga się java.lang.Obiekt class.
JUnit Podaj metody
Boolean
Jeśli chcesz przetestować warunki logiczne (prawda lub fałsz), możesz użyć następujących metod assert
- assertTrue (warunek)
- assertFalse (warunek)
Tutaj warunek jest wartością logiczną.
Obiekt zerowy
Jeśli chcesz sprawdzić wartość początkową obiektu/zmiennej, masz do dyspozycji następujące metody:
- twierdzenieNull(obiekt)
- twierdzenieNotNull(obiekt)
Tutaj jest obiekt Java przedmiot na przykład twierdzenieNull(rzeczywisty);
Identyczny
Jeśli chcesz sprawdzić, czy obiekty są identyczne (tj. porównanie dwóch odniesień do tego samego obiektu Java), czy różne.
- twierdzićSame(oczekiwane, rzeczywiste), Zwróci wartość true if oczekiwane == rzeczywiste
- AssertNotSame(oczekiwane, rzeczywiste)
Twierdzenie równa się
Jeśli chcesz sprawdzić równość dwóch obiektów, masz następujące metody
- AssertEquals(oczekiwane, rzeczywiste)
Zwróci wartość true, jeśli: oczekiwane. równa się (rzeczywiste) zwraca prawdę.
Potwierdź, że tablica jest równa
Jeśli chcesz sprawdzić równość tablic, możesz skorzystać z poniższych metod:
- AssertArrayEquals(oczekiwane, rzeczywiste)
Powyższą metodę należy zastosować, jeśli tablice mają tę samą długość dla każdej prawidłowej wartości for i, możesz to sprawdzić w sposób podany poniżej:
- asertEquals(oczekiwane[i],rzeczywiste[i])
- AssertArrayEquals(oczekiwane[i],rzeczywiste[i])
Wiadomość o niepowodzeniu
Jeśli chcesz zgłosić błąd asercji, masz to ponieść porażkę() co zawsze kończy się niepowodzeniem.
- Niepowodzenie (wiadomość);
Możesz mieć metodę asercji z dodatkową sznur parametr jako pierwszy parametr. Ten ciąg zostanie dołączony do komunikatu o niepowodzeniu, jeśli potwierdzenie nie powiedzie się. Np niepowodzenie (wiadomość) można zapisać jako
- AssertEquals(wiadomość, oczekiwana, rzeczywista)
JUnit AssertEquals
Ty masz twierdzenieEquals(a,b) która opiera się na równa się() metoda klasy Object.
- Tutaj będzie to oceniane jako a. równa się ( b ).
- Tutaj testowana klasa służy do określenia odpowiedniej relacji równości.
- Jeśli klasa nie zastępuje metody równa się() metoda przedmiot class, otrzyma domyślne zachowanie równa się() metoda, czyli tożsamość obiektu.
If a i b są prymitywne, takie jak bajt, int, booleanitd., wówczas dla assertEquals(a,b) zostanie wykonane następujące polecenie:
a i b zostaną przekonwertowane na odpowiadający im typ obiektu opakowania (Bajt, liczba całkowita, Booleanitp.), a następnie a. równa się ( b ) zostaną ocenione.
Na przykład: rozważ poniższe ciągi znaków o tych samych wartościach, przetestujmy je za pomocą funkcji AssertTrue
String obj1="Junit"; String obj2="Junit"; assertEquals(obj1,obj2);
Powyższa instrukcja asercji zwróci wartość true, ponieważ obj1.equals(obj2) zwróci wartość true.
Twierdzenia zmiennoprzecinkowe
Jeśli chcesz porównać typy zmiennoprzecinkowe (np Podwójna or unosić się), potrzebujesz dodatkowego wymaganego parametru delta aby uniknąć problemów z błędami zaokrągleń podczas porównań zmiennoprzecinkowych.
Twierdzenie ocenia się w sposób podany poniżej:
- Math.abs( oczekiwano – faktycznie ) <= delta
Na przykład:
twierdzenieEquals(aDoubleWartość, innyDoubleWartość, 0.001)
JUnit Podaj przykład
Poniższy przykład ilustruje, jak potwierdzić warunek za pomocą JUnit potwierdzać metody.
Stwórzmy prostą klasę testową o nazwie Junit4AssertionTest.java oraz klasa biegacza testowego TestRunner.java.
Utworzysz kilka zmiennych i ważne instrukcje asercji w JUnit.
W tym przykładzie wykonasz naszą klasę testową przy użyciu TestRunner.java
Krok 1) Utwórzmy klasę obejmującą wszystkie ważne metody instrukcji assert w junit:
Junit4AssertionTest.java
package guru99.junit; import static org.junit.Assert.*; import org.junit.Test; public class Junit4AssertionTest { @Test public void testAssert(){ //Variable declaration String string1="Junit"; String string2="Junit"; String string3="test"; String string4="test"; String string5=null; int variable1=1; int variable2=2; int[] airethematicArrary1 = { 1, 2, 3 }; int[] airethematicArrary2 = { 1, 2, 3 }; //Assert statements assertEquals(string1,string2); assertSame(string3, string4); assertNotSame(string1, string3); assertNotNull(string1); assertNull(string5); assertTrue(variable1<variable2); assertArrayEquals(airethematicArrary1, airethematicArrary2); } }
Krok 2) Aby wykonać powyższą klasę, musisz utworzyć klasę uruchamiającą testy:
TestRunner.java
package guru99.junit; import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.notification.Failure; public class TestRunner { public static void main(String[] args) { Result result = JUnitCore.runClasses(Junit4AssertionTest.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } System.out.println("Result=="+result.wasSuccessful()); } }
Krok 3) Przeanalizujmy oczekiwany wynik krok po kroku:
Rozważ wszystkie instrukcje potwierdzenia jedna po drugiej:
- asertEquals(string1,string2);
Teraz porównaj string1=” Junit” z string2=” Junit” z metodą equals klasy obiektu. Zastąpienie metody assertEquals z metody java.lang.Object.equals():
string1.equals(string2)=> zwraca wartość true
Zatem zwróci funkcjęasserEquals(string1,string2). prawdziwy.
- AsserSame(string3, string4);
Funkcjonalność „assertSame()” polega na sprawdzeniu, czy oba obiekty odnoszą się do tego samego obiektu.
Ponieważ ciąg3=”test” i ciąg4=”test” oznaczają, że zarówno ciąg3, jak i ciąg4 są tego samego typu, więc zwróci wartośćasserSame(string3, string4) prawdziwy.
- AssertNotSame(string1, string3);
Funkcja „assertNotSame()” polega na sprawdzeniu, czy oba obiekty nie odnoszą się do tego samego obiektu.
Ponieważ string1=”Junit” i string3=”test” oznaczają, że zarówno string1, jak i string3 są różnych typów, więc assertNotSame(string1, string3) zwróci prawdziwy.
- twierdzenieNotNull(string1);
Funkcjonalność „assertNotNull()” polega na sprawdzaniu, czy obiekt nie ma wartości null.
Ponieważ string1= „Junit”, co jest wartością różną od null, assertNotNull(string1) zwróci prawdziwy.
- twierdzenieNull(string5);
Funkcjonalność „assertNull()” polega na sprawdzaniu, czy obiekt ma wartość null.
Ponieważ string5= null, który jest wartością null, więc zwróci funkcjęasserNull(string5). prawdziwy.
- twierdzenieTrue(zmienna1
Funkcjonalność „assertTrue()” polega na sprawdzeniu, czy warunek jest prawdziwy.
Ponieważ zmienna 1 = 1 i zmienna 2 = 2, co pokazuje, że zmienna 1 prawdziwy.
- AssertArrayEquals(airethematicArrrary1, airethematicArrary2);
Funkcjonalność „assertArrayEquals()” polega na sprawdzeniu, czy tablica oczekiwana i tablica wynikowa są równe. Typ tablicy może być int, long, short, char, byte lub java.lang.Object.
Ponieważ airethematicArrary1 = { 1, 2, 3 } i airethematicArrary2 = { 1, 2, 3 }, co pokazuje, że obie tablice są równe, więc zwróciasserArrayEquals(airethematicArrrary1, airethematicArrrary2) prawdziwy
Ponieważ wszystkie siedem stwierdzeń stwierdzających Junit4AssertionTest.java class zwraca wartość true, dlatego gdy wykonasz klasę potwierdzenia testu, zwróci ona pomyślny test. (zobacz wynik poniżej)
Krok 4) Kliknij prawym przyciskiem myszy Junit4AssertionTest.java i kliknij runAs->JUnit. Zobaczysz dane wyjściowe, jak podano poniżej:
Powyższe dane wyjściowe pokazują pomyślny wynik testu, zgodnie z oczekiwaniami.
Podsumowanie
W tym samouczku poznałeś wszystkie ważne typy metod asercji udostępniane przez JUnit. Widziałeś także przykłady instrukcji asert. Co pokazuje, że jeśli wszystkie instrukcje potwierdzenia zwrócą wartość true, testowy interfejs GUI zwróci prawdziwy wynik, a jeśli pojedynczy test zakończy się niepowodzeniem, zwróci wynik nieudany.