Junit Assert & AssertEquals ile Örnek
⚡ Akıllı Özet
JUnit Assert ve AssertEquals, beklenen ve gerçek değerleri karşılaştırarak bir test durumunun başarılı veya başarısız olup olmadığını belirler. Bu kaynak, org.junit.Assert tarafından sağlanan assert yöntemlerini, boolean, null, kimlik, eşitlik ve dizi doğrulamaları da dahil olmak üzere, eksiksiz bir çalışma örneğiyle birlikte açıklamaktadır.
Junit Assert nedir?
Assert yöntemi, bir test durumunun başarılı (Pass) veya başarısız (Fail) olduğunu belirlemede kullanışlıdır. Assert yöntemleri, java.lang.Object sınıfını genişleten org.junit.Assert sınıfı tarafından sağlanır.
Mantıksal (Boolean), sıfır (null), özdeş (identical) gibi çeşitli doğrulama türleri vardır.
JUnit Bu, test senaryoları yazmada ve test hatalarını tespit etmede faydalı olan bir dizi doğrulama yöntemi sağlayan Assert adlı bir sınıf sunar.
Assert yöntemleri sınıf tarafından sağlanır org.junit.İddiaBu da genişletir java.lang.Object sınıf.
JUnit Yöntemleri iddia et
Boole
Mantıksal (doğru veya yanlış) koşulları test etmek istiyorsanız, aşağıdaki doğrulama yöntemlerini kullanabilirsiniz:
- iddiaTrue(koşul)
- iddiaYanlış(koşul)
Burada koşul bir boole değeridir.
Boş nesne
Bir nesnenin/değişkenin başlangıç değerini kontrol etmek istiyorsanız, aşağıdaki yöntemlere sahipsiniz:
- iddiaNull(nesne)
- iddiaNotNull(nesne)
Burada nesne bir Java nesne, örneğin iddiaNull(gerçek);
Aynı
Nesnelerin özdeş olup olmadığını kontrol etmek istiyorsanız (yani, aynı nesneye yapılan iki referansı karşılaştırmak istiyorsanız) Java nesne) veya farklı:
- aynı olduğunu doğrula(beklenen, gerçek) — Eğer doğruysa true değerini döndürecektir. beklenen == gerçek.
- iddiaNotSame(beklenen, gerçek)
Eşittir İddiası
İki nesnenin eşitliğini test etmek istiyorsanız, aşağıdaki yöntemi kullanabilirsiniz:
- iddiaEquals(beklenen, gerçek)
Eğer doğruysa dönecektir beklenen.eşittir(gerçek) doğru döndürür.
Dizinin Eşit Olduğunu İddia Edin
Dizilerin eşitliğini test etmek istiyorsanız, aşağıdaki yöntemi kullanabilirsiniz:
- iddiaArrayEquals(beklenen, gerçek)
Dizilerin uzunlukları aynıysa yukarıdaki yöntem kullanılmalıdır. Her geçerli değer için iaşağıda verildiği gibi kontrol edebilirsiniz:
- assertEquals(expected[i], actual[i])
- assertArrayEquals(expected[i], actual[i])
Başarısız Mesajı
Herhangi bir iddia hatası atmak istiyorsanız, hata()Bu durum her zaman başarısızlıkla sonuçlanır.
- başarısız(mesaj);
Ek bir doğrulama yöntemine sahip olabilirsiniz. dizi Parametreyi ilk parametre olarak belirtin. Bu dize, doğrulama başarısız olursa hata mesajına eklenecektir. Örneğin, başarısız(mesaj) şu şekilde yazılabilir:
- assertEquals(mesaj, beklenen, gerçek)
JUnit iddiaEşittir
Sen var assertEqual(a, b), şuna dayanır: eşittir () Object sınıfının yöntemi.
- Burada şu şekilde değerlendirilecektir: a.eşittir(b).
- Burada test edilen sınıf uygun bir eşitlik ilişkisini belirlemek için kullanılır.
- Bir sınıf geçersiz kılmazsa eşittir () yöntem nesne Bu sınıf, varsayılan davranışını alacaktır. eşittir () yöntem, yani nesne kimliği.
If a hem de b gibi ilkellerdir bayt, int, booleEğer durum böyleyse, assertEquals(a, b) için aşağıdaki işlemler yapılacaktır:
a hem de b eşdeğer sarmalayıcı nesne türüne dönüştürülecek (Bayt, Tamsayı, Mantıksal Değer, vb.) ve ardından a.eşittir(b) değerlendirilecektir.
Örneğin, aynı değerlere sahip aşağıdaki dizeleri ele alalım; bunu assertEquals kullanarak test edelim:
String obj1 = "Junit"; String obj2 = "Junit"; assertEquals(obj1, obj2);
Yukarıdaki assert ifadesi, obj1.equals(obj2) true döndürdüğü için true değerini döndürecektir.
Kayan nokta iddiaları
Kayan noktalı sayı türlerini karşılaştırmak istediğinizde (örneğin, çift or şamandıra), ek bir gerekli parametreye ihtiyacınız var, deltaBu sayede, kayan noktalı karşılaştırmalar yapılırken yuvarlama hatalarından kaynaklanan sorunlardan kaçınılabilir.
İddia aşağıdaki gibi değerlendirilir:
- Math.abs(beklenen – gerçek) <= delta
Örneğin:
assertEquals(aDoubleDeğer, başkaDoubleDeğer, 0.001)
JUnit İddia Örneği
Aşağıdaki örnek, bir koşulun nasıl doğrulanacağını göstermektedir. JUnit yöntemleri ileri sürer.
Şimdi basit bir test sınıfı oluşturalım. Junit4AssertionTest.java ve bir test koşucusu sınıfı TestRunner.java.
Birkaç değişken ve önemli doğrulama ifadesi oluşturacaksınız. JUnit.
Bu örnekte, TestRunner.java kullanarak test sınıfımızı çalıştıracaksınız.
) 1 Adım Tüm önemli assert ifadesi yöntemlerini kapsayan bir sınıf oluşturalım. 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); } }
) 2 Adım Yukarıdaki sınıfı çalıştırmak için bir test çalıştırıcı sınıfı oluşturmanız gerekiyor:
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()); } }
) 3 Adım Beklenen çıktıyı adım adım analiz edelim. Tüm doğrulama ifadelerini tek tek ele alalım:
- assertEquals(string1, string2);
Şimdi string1="Junit" ile string2="Junit" ifadelerini Object sınıfının equals metoduyla karşılaştırın. assertEquals metodunu java.lang.Object.equals() metoduyla değiştirin:
string1.equals(string2) => true döndürür
Dolayısıyla assertEquals(string1, string2) şu sonucu döndürecektir: gerçek.
- iddiaSame(string3, string4);
“assertSame()” işlevi, iki nesnenin aynı nesneye referans verip vermediğini kontrol etmek içindir. string3=”test” ve string4=”test” olduğundan, hem string3 hem de string4 aynı türdedir, bu nedenle assertSame(string3, string4) boş değer döndürecektir. gerçek.
- iddiaNotSame(dize1, dize3);
“assertNotSame()” işlevi, iki nesnenin aynı nesneye referans vermediğini kontrol etmek içindir. string1=”Junit” ve string3=”test” olduğundan, hem string1 hem de string3 farklı türdedir, bu nedenle assertNotSame(string1, string3) yanlış değer döndürecektir. gerçek.
- iddiaNotNull(string1);
“assertNotNull()” işlevi, bir nesnenin null olmadığını kontrol etmek içindir. string1=”Junit” null olmayan bir değer olduğundan, assertNotNull(string1) null döndürecektir. gerçek.
- iddiaNull(string5);
“assertNull()” işlevi, bir nesnenin null olup olmadığını kontrol etmek içindir. string5=null olduğundan ve bu da null bir değer olduğundan, assertNull(string5) bir değer döndürecektir. gerçek.
- doğru olduğunu doğrula(değişken1 < değişken2);
“assertTrue()” işlevi, bir koşulun doğru olup olmadığını kontrol etmek içindir. variable1=1 ve variable2=2 olduğundan, variable1 < variable2 koşulunun doğru olduğunu gösterir; bu nedenle assertTrue(variable1 < variable2) ifadesi true değerini döndürür. gerçek.
- iddiaArrayEquals(airethematicArrary1, airethematicArrary2);
“assertArrayEquals()” işlevi, beklenen dizi ile elde edilen dizinin eşit olup olmadığını kontrol etmek içindir. Dizi türü int, long, short, char, byte veya java.lang.Object olabilir. airethematicArrary1 = { 1, 2, 3 } ve airethematicArrary2 = { 1, 2, 3 } olduğundan, her iki dizinin de eşit olduğunu gösterir; bu nedenle assertArrayEquals(airethematicArrary1, airethematicArrary2) doğru sonuç döndürecektir. gerçek.
Yedi iddianın tamamı doğru olduğundan Junit4AssertionTest.java Bu sınıf, `assert` testini çalıştırdığınızda `true` değerini döndürür ve başarılı bir test sonucu verir (aşağıdaki çıktıya bakın).
) 4 Adım Junit4AssertionTest.java dosyasına sağ tıklayın ve "Çalıştır" seçeneğine tıklayın. JUnit. Çıktıyı aşağıda verildiği gibi göreceksiniz:
Yukarıdaki çıktı, beklendiği gibi başarılı bir test sonucunu göstermektedir.


