Junit Assert & Örnekle AssertEquals

İçindekiler:

Anonim

Junit Assert nedir?

Assert, bir test olayının Başarılı veya Başarısız durumunu belirlemede yararlı bir yöntemdir. Assert yöntemleri, java.lang.Object sınıfını genişleten org.junit.Assert sınıfı tarafından sağlanır.

Boolean, Null, Identical vb. Gibi çeşitli iddia türleri vardır.

Junit, test senaryoları yazmada ve test başarısızlığını tespit etmede yararlı olan bir dizi onaylama yöntemi sağlayan Assert adlı bir sınıf sağlar.

Assert yöntemleri java.lang.Object sınıfını genişleten org.junit.Assert sınıfı tarafından sağlanır .

Bu eğitimde öğreneceksiniz-

  • JUnit Assert yöntemleri
  • Boole
  • Boş nesne
  • Özdeş
  • Eşittir Hak Talebi
  • Assert Array Equals
  • Başarısız Mesaj
  • JUnit assertEquals
  • Kayan nokta iddiaları
  • JUnit Assert Örneği

JUnit Assert yöntemleri

Boole

Boole koşullarını (doğru veya yanlış) test etmek istiyorsanız, aşağıdaki assert yöntemlerini kullanabilirsiniz.

  1. assertTrue (koşul)
  2. assertFalse (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:

  1. assertNull (nesne)
  2. assertNotNull (nesne)

Burada nesne Java nesnesidir, örneğin assertNull (gerçek);

Özdeş

Nesnelerin aynı olup olmadığını (yani aynı java nesnesine iki referansı karşılaştırarak) veya farklı olup olmadığını kontrol etmek istiyorsanız.

  1. assertSame (beklenen, gerçek), Bekleniyorsa doğru döndürür == gerçek
  2. assertNotSame (beklenen, gerçek)

Eşittir Hak Talebi

İki nesnenin eşitliğini test etmek istiyorsanız, aşağıdaki yöntemlere sahipsiniz

  • assertEquals (beklenen, gerçek)

Eğer: beklenen.equals (gerçek) true değerini döndürürse true döndürür.

Assert Array Equals

Dizilerin eşitliğini test etmek istiyorsanız, aşağıda verilen yöntemlere sahipsiniz:

  • assertArrayEquals (beklenen, gerçek)

Diziler aynı uzunluğa sahipse yukarıdaki yöntem kullanılmalıdır, i için her geçerli değer için , aşağıda verildiği gibi kontrol edebilirsiniz:

  • assertEquals (beklenen [i], gerçek [i])
  • assertArrayEquals (beklenen [i], gerçek [i])

Başarısız Mesaj

Herhangi bir onaylama hatası atmak istiyorsanız , her zaman başarısızlıkla sonuçlanan fail () 'e sahip olursunuz .

  • Başarısız (mesaj);

İlk parametre olarak ek bir String parametresi olan onaylama yöntemine sahip olabilirsiniz . İddia başarısız olursa bu dize hata mesajına eklenecektir. Örneğin başarısız (mesaj) şu şekilde yazılabilir:

  • assertEquals (mesaj, beklenen, gerçek)

JUnit assertEquals

Object sınıfının equals () yöntemine dayanan assertEquals (a, b) 'ye sahipsiniz .

  • Burada a.equals (b) olarak değerlendirilecektir .
  • 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ılmaz Eğer equals () metodunu Nesne sınıfının, bu varsayılan davranışını alacak eşittir () yöntemini yani nesne kimliği.

Eğer a ve b , bayt , int , boole , vb. Gibi ilkel iseler, o zaman assertEquals (a, b) için aşağıdakiler yapılacaktır:

a ve b , eşdeğer sarmalayıcı nesne türüne ( Byte, Integer , Boolean , vb.) dönüştürülecek ve ardından a.equals (b) değerlendirilecektir.

Örneğin: Aşağıda belirtilen dizelerin aynı değerlere sahip olduğunu düşünün, hadi assertTrue kullanarak test edelim

Dize obj1 = "Junit";Dize obj2 = "Junit";assertEquals (obj1, obj2);

Obj1.equals (obj2) true döndürdüğünde yukarıdaki assert ifadesi true döndürür.

Kayan nokta iddiaları

Kayan nokta türlerini karşılaştırmak istediğinizde (örneğin çift veya kayan nokta ), kayan nokta karşılaştırmaları yaparken yuvarlama hatalarıyla ilgili sorunları önlemek için ek bir gerekli parametre delta'ya ihtiyacınız vardır .

İddia aşağıda verildiği gibi değerlendirilir:

  • Math.abs (beklenen - gerçek) <= delta

Örneğin:

assertEquals (aDoubleValue, anotherDoubleValue, 0.001)

JUnit Assert Örneği

Aşağıdaki örnek, JUnit assert yöntemleri kullanılarak bir koşulun nasıl iddia edileceğini gösterir.

Junit4AssertionTest.java adında basit bir test sınıfı ve TestRunner.java test çalıştırıcı sınıfı oluşturalım .

JUnit'te birkaç değişken ve önemli assert ifadeleri oluşturacaksınız.

Bu örnekte, TestRunner.java kullanarak test sınıfımızı çalıştıracaksınız.

Adım 1) Junit'teki tüm önemli assert ifadesi yöntemlerini kapsayan bir sınıf oluşturalım:

Junit4AssertionTest.java

paket guru99.junit;statik org.junit.Assert. *;import org.junit.Test;public class Junit4AssertionTest {@Ölçekpublic void testAssert () {// Değişken bildirimiString string1 = "Junit";String string2 = "Junit";Dize string3 = "test";Dize string4 = "test";Dize string5 = boş;int değişken1 = 1;int değişken2 = 2;int [] airethematicArrary1 = {1, 2, 3};int [] airethematicArrary2 = {1, 2, 3};// İfadeleri onaylayınassertEquals (dize1, dize2);assertSame (dize3, dize4);assertNotSame (dize1, dize3);assertNotNull (dize1);assertNull (string5);assertTrue (değişken1 

Adım 2) Yukarıdaki sınıfı çalıştırmak için bir test çalıştırıcı sınıfı oluşturmanız gerekir:

TestRunner.java

paket 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) {Sonuç sonucu = JUnitCore.runClasses (Junit4AssertionTest.class);for (Hata hatası: result.getFailures ()) {System.out.println (fail.toString ());}System.out.println ("Result ==" + result.wasSuccessful ());}}

Adım 3) Beklenen çıktıyı adım adım analiz edelim:

Tüm assert ifadelerini tek tek düşünün:

  1. assertEquals (dize1, dize2);

Şimdi string1 = "Junit" ile string2 = "Junit" i nesne sınıfının eşittir yöntemi ile karşılaştırın. Java.lang.Object.equals () yönteminden assertEquals yönteminin değiştirilmesi:

string1.equals (string2) => true değerini döndürür

Bu nedenle, assertEquals (dize1, dize2) true değerini döndürecektir .

  1. assertSame (dize3, dize4);

"assertSame ()" işlevi, iki nesnenin aynı nesneye başvurduğunu kontrol etmektir.

String3 = "test" ve string4 = "test", hem string3 hem de string4'ün aynı türde olduğu anlamına geldiğinden, assertSame (string3, string4) true değerini döndürecektir .

  1. assertNotSame (dize1, dize3);

"assertNotSame ()" işlevi, iki nesnenin aynı nesneye başvurmadığını kontrol etmektir.

String1 = "Junit" ve string3 = "test", hem string1 hem de string3'ün farklı türde olduğu anlamına geldiğinden, assertNotSame (string1, string3) true değerini döndürecektir .

  1. assertNotNull (dize1);

"assertNotNull ()" işlevi, bir nesnenin boş olmadığını kontrol etmektir.

Boş olmayan bir değer olan string1 = "Junit" olduğundan, assertNotNull (string1) true değerini döndürecektir .

  1. assertNull (string5);

"assertNull ()" işlevi, bir nesnenin boş olup olmadığını kontrol etmektir.

String5 = null olduğundan, bu bir null değerdir, bu nedenle assertNull (string5) true döndürür .

  1. assertTrue (değişken1

"assertTrue ()" işlevi, bir koşulun doğru olup olmadığını kontrol etmektir.

Değişken1 = 1 ve değişken2 = 2 olduğundan, değişken1 doğru döndürür .

  1. assertArrayEquals (airethematicArrary1, airethematicArrary2);

"assertArrayEquals ()" işlevi, beklenen dizi ile sonuçlanan dizinin eşit olup olmadığını kontrol etmektir. Dizi türü int, long, short, char, byte veya java.lang.Object olabilir.

Her iki dizinin de eşit olduğunu gösteren airethematicArrary1 = {1, 2, 3} ve airethematicArrary2 = {1, 2, 3} olduğundan, assertArrayEquals (airethematicArrary1, airethematicArrary2) true değerini döndürür

Junit4AssertionTest.java sınıfının yedi assert ifadesinin tümü true döndürdüğünden, test assert sınıfını çalıştırdığınızda başarılı bir test döndürür. (aşağıdaki çıktıya bakın)

Adım 4) Junit4AssertionTest.java'ya sağ tıklayın ve runAs-> JUnit'e tıklayın. Çıkışı aşağıda verildiği gibi göreceksiniz:

Yukarıdaki çıktı, beklendiği gibi başarılı bir test sonucunu gösterir.

Özet:

Bu öğreticide, JUnit tarafından sağlanan tüm önemli onaylama yöntemi türlerini öğrendiniz. Ayrıca, assert ifadelerinin örneklerini gördünüz. Bu, tüm assert ifadelerinin doğru dönmesi durumunda, test GUI'sinin gerçek bir sonuç döndüreceğini ve tek test başarısız olursa başarısız bir sonuç döndüreceğini gösterir.