Junit Assert i AssertEquals z przykładem
⚡ Inteligentne podsumowanie
JUnit Metody Assert i AssertEquals określają status zaliczenia lub niezaliczenia przypadku testowego poprzez porównanie wartości oczekiwanych i rzeczywistych. W tym materiale wyjaśniono metody Assert udostępniane przez org.junit.Assert, w tym asercje wartości logicznych, wartości null, tożsamości, równości i tablic, wraz z kompletnym przykładem działania.

Czym jest Junit Assert?
Assert to metoda przydatna do określania statusu zaliczenia lub niezaliczenia przypadku testowego. Metody assert są dostarczane przez klasę org.junit.Assert, która rozszerza klasę java.lang.Object.
Istnieją różne typy twierdzeń, takie jak Boolean, Null, Identyczne, itp.
JUnit udostępnia klasę o nazwie Assert, która zapewnia szereg metod asercji przydatnych przy pisaniu przypadków testowych i wykrywaniu błędów testowych.
Metody potwierdzenia są dostarczane przez klasę org.junit.Assert, który rozszerza 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 obiekt jest Java obiekt, na przykład twierdzenieNull(rzeczywisty);
Identyczny
Jeśli chcesz sprawdzić, czy obiekty są identyczne (czyli porównać dwa odniesienia do tego samego obiektu), Java obiekt) lub inny:
- assertSame(oczekiwane, rzeczywiste) — Zwróci wartość true, jeśli oczekiwane == rzeczywiste.
- AssertNotSame(oczekiwane, rzeczywiste)
Twierdzenie równa się
Jeżeli chcesz sprawdzić równość dwóch obiektów, masz następującą metodę:
- AssertEquals(oczekiwane, rzeczywiste)
Zwróci wartość true if oczekiwane.równe(rzeczywiste) zwraca prawdę.
Potwierdź, że tablica jest równa
Jeśli chcesz sprawdzić równość tablic, masz następującą metodę:
- AssertArrayEquals(oczekiwane, rzeczywiste)
Powyższą metodę należy stosować, jeśli tablice mają tę samą długość. Dla każdej prawidłowej wartości dla i, możesz to sprawdzić w sposób podany poniżej:
- assertEquals(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ę werdyktem negatywnym.
- fail(komunikat);
Możesz mieć metodę asercji z dodatkowym sznur parametr jako pierwszy parametr. Ten ciąg zostanie dołączony do komunikatu o błędzie, jeśli asercja się nie powiedzie. Na przykład: niepowodzenie (komunikat) można zapisać jako:
- assertEquals(wiadomość, oczekiwana, rzeczywista)
JUnit AssertEquals
Posiadasz assertEquals(a, b), który 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 klasa, otrzyma domyślne zachowanie równa się() metoda, czyli tożsamość obiektu.
If a oraz b są prymitywne, takie jak bajt, int, booleanitd., wówczas dla assertEquals(a, b) zostanie wykonane następujące polecenie:
a oraz b zostaną przekonwertowane na odpowiadający im typ obiektu opakowania (Bajt, liczba całkowita, wartość logicznaitp.), a następnie a.równa się(b) zostaną ocenione.
Na przykład, rozważmy poniższe ciągi znaków o tych samych wartościach; przetestujmy to za pomocą assertEquals:
String obj1 = "Junit"; String obj2 = "Junit"; assertEquals(obj1, obj2);
Powyższe polecenie assert zwróci wartość true, ponieważ obj1.equals(obj2) zwraca wartość true.
Twierdzenia zmiennoprzecinkowe
Jeśli chcesz porównać typy zmiennoprzecinkowe (np. Podwójna or unosić się), potrzebny jest dodatkowy wymagany parametr, delta, aby uniknąć problemów z błędami zaokrągleń podczas porównywania liczb zmiennoprzecinkowych.
Twierdzenie ocenia się w sposób podany poniżej:
- Math.abs(oczekiwane – rzeczywiste) <= delta
Na przykład:
assertEquals(aDoubleWartość, innyDoubleWartość, 0.001)
JUnit Podaj przykład
Poniższy przykład pokazuje, jak potwierdzić warunek za pomocą JUnit potwierdzać metody.
Utwórzmy prostą klasę testową o nazwie Junit4AssertionTest.java oraz klasa biegacza testowego TestRunner.java.
W tym artykule utworzysz kilka zmiennych i ważnych instrukcji assert. 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ę, należy 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żmy wszystkie instrukcje assert po kolei:
- assertEquals(string1, string2);
Teraz porównaj string1=”Junit” z string2=”Junit” z metodą equals klasy Object. Zastąp metodę assertEquals metodą java.lang.Object.equals():
string1.equals(string2) => zwraca wartość true
Tak więc assertEquals(string1, string2) zwróci prawdziwy.
- AsserSame(string3, string4);
Funkcjonalność „assertSame()” polega na sprawdzeniu, czy oba obiekty odnoszą się do tego samego obiektu. Ponieważ string3=”test” i string4=”test”, zarówno string3, jak i string4 są tego samego typu, więc assertSame(string3, string4) zwróci prawdziwy.
- AssertNotSame(string1, string3);
Funkcjonalność „assertNotSame()” polega na sprawdzeniu, czy oba obiekty nie odnoszą się do tego samego obiektu. Ponieważ string1=”Junit” i string3=”test”, zarówno string1, jak i string3 są różnych typów, więc assertNotSame(string1, string3) zwróci prawdziwy.
- twierdzenieNotNull(string1);
Funkcjonalność „assertNotNull()” służy do sprawdzania, czy obiekt nie jest nullem. Ponieważ string1=”Junit”, czyli wartość różna od nulla, assertNotNull(string1) zwróci prawdziwy.
- twierdzenieNull(string5);
Funkcjonalność „assertNull()” służy do sprawdzania, czy obiekt jest nullem. Ponieważ string5=null, czyli wartość null, assertNull(string5) zwróci prawdziwy.
- assertTrue(zmienna1 < zmienna2);
Funkcjonalność „assertTrue()” służy do sprawdzania, czy warunek jest spełniony. Ponieważ zmienna1=1 i zmienna2=2, co oznacza, że warunek zmienna1 < zmienna2 jest spełniony, assertTrue(zmienna1 < zmienna2) zwróci prawdziwy.
- AssertArrayEquals(airethematicArrrary1, airethematicArrary2);
Funkcjonalność „assertArrayEquals()” polega na sprawdzeniu, czy oczekiwana tablica 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 oznacza, że obie tablice są równe, assertArrayEquals(airethematicArrary1, airethematicArrary2) zwróci prawdziwy.
Ponieważ wszystkie siedem stwierdzeń potwierdza Junit4AssertionTest.java klasa zwraca wartość true, gdy wykonujesz test assert class, zwróci ona pomyślny test (zobacz wynik poniżej).
Krok 4) Kliknij prawym przyciskiem myszy plik Junit4AssertionTest.java i kliknij opcję Uruchom jako -> JUnit. Zobaczysz dane wyjściowe, jak podano poniżej:
Powyższe dane wyjściowe wskazują na oczekiwany, pomyślny wynik testu.

