oluşturmak JUnit Örnekle Test Paketi: @RunWith @SuiteClasses
Junit'te test paketi, birden fazla sınıftan tüm test senaryolarını tek bir yerde toplamamıza ve birlikte çalıştırmamıza olanak tanır.
Paket testini çalıştırmak için aşağıda belirtilen ek açıklamaları kullanarak bir sınıfa açıklama eklemeniz gerekir:
- @Runwith(Suite.class)
- @SuiteClasses(test1.class,test2.class……) veya@Suite.SuiteClasses ({test1.class, test2.class……})
Yukarıdaki ek açıklamalarla paketteki tüm test sınıfları tek tek yürütülmeye başlayacaktır.
Test Paketi ve Test Çalıştırıcısı oluşturma adımları
) 1 Adım Basit bir test sınıfı oluşturun (örn. MyFirstClassTest) ve @test ile açıklamalı bir yöntem ekleyin.
) 2 Adım Eklenecek başka bir test sınıfı oluşturun (örn. MySecondClassTest) ve @test ile açıklamalı bir yöntem oluşturun.
) 3 Adım Bir testSuite oluşturmak için öncelikle sınıfa @RunWith(Suite.class) ve @SuiteClasses(class1.class2…..) ile açıklama eklemeniz gerekir.
) 4 Adım Test paketimizi aşağıdaki gibi çalıştırmak için bir Test Runner sınıfı oluşturun;
Kod Açıklaması:
- Kod Satırı 8: Sınıfımızı çalıştıracak olan sınıf testinin ana yöntemini bildirmek JUnit testi.
- Kod Satırı 9: Test sınıfı adını parametre olarak alan JunitCore.runclasses kullanılarak test senaryolarının yürütülmesi (Yukarıdaki örnekte, 3. adımda gösterilen TestSuiteExample.class kullanıyorsunuz).
- Kod Satırı 11: Sonucun for döngüsü kullanılarak işlenmesi ve başarısız sonucun yazdırılması.
- Kod Satırı 13: Başarılı sonucun yazdırılması.
Çıktı: Aşağıda belirtildiği gibi hiçbir arıza izi olmadan başarılı testi gösteren çıktı:
JUnit Test Paketi Örneği
Daha karmaşık bir örneği ele alalım
JunitTest.java
JunitTest.java, açıklamalı basit bir sınıftır. @RunWith ve @Süit ek açıklamalar. Paketteki .classes sayısını aşağıda verildiği gibi parametre olarak listeleyebilirsiniz:
package guru99.junit; import org.junit.runner.RunWith; import org.junit.runners.Suite; @RunWith(Suite.class) @Suite.SuiteClasses({ SuiteTest1.class, SuiteTest2.class, }) public class JunitTest { // This class remains empty, it is used only as a holder for the above annotations }
SuiteTest1.java
SuiteTest1.java aşağıda verildiği gibi bir mesajın çıktısını almak için bir test yöntemine sahip bir test sınıfıdır. Bu sınıfı yukarıda belirtilen sınıfta bir süit olarak kullanacaksınız.
package guru99.junit; import static org.junit.Assert.assertEquals; import org.junit.Test; public class SuiteTest1 { public String message = "Saurabh"; JUnitMessage junitMessage = new JUnitMessage(message); @Test(expected = ArithmeticException.class) public void testJUnitMessage() { System.out.println("Junit Message is printing "); junitMessage.printMessage(); } @Test public void testJUnitHiMessage() { message = "Hi!" + message; System.out.println("Junit Hi Message is printing "); assertEquals(message, junitMessage.printHiMessage()); System.out.println("Suite Test 2 is successful " + message); } }
SuiteTest2.java
SuiteTest2.java buna benzer başka bir test sınıfıdır SuiteTest1.java Aşağıda verildiği gibi bir mesajın çıktısını almak için bir test yöntemine sahip olmak. Bu sınıfı süit olarak kullanacaksınız. JunitTest.java.
package guru99.junit; import org.junit.Assert; import org.junit.Test; public class SuiteTest2 { @Test public void createAndSetName() { String expected = "Y"; String actual = "Y"; Assert.assertEquals(expected, actual); System.out.println("Suite Test 1 is successful " + actual); } }
Çıktı
Çalıştırdıktan sonra Junit Testisahip bir süit içeren .java test1.java ve test2.javaaşağıdaki çıktıyı alacaksınız:
ÖZET
Bu eğitimde, test koşumları ve test takımlarının temellerini bir örnekle detaylı bir şekilde öğrendiniz.
- Kablo demetini veya otomasyonu test edin Test yapmak kullanıcının birden fazla girdiyle verileri test etmesine ve yürütmeyi kontrol etmesine olanak tanıyan bir yazılım veya yazılım koleksiyonudur
- Test koşum takımı aslında bir test kütüphanesi kullanarak testleri yürütme ve bir test raporu oluşturma işinin tümünü yapan bir test çerçevesine olanak tanır
- Junit'te test paketi, birçok sınıfın tüm test senaryolarını tek bir yerde toplamamıza ve birlikte çalıştırmamıza olanak tanır.