Java'da JUnit
Küçük bir metodun istediğiniz değeri döndürdüğünü kontrol edin. SumCheck.java içinde package-private Sum ve add metodunu tutun, public sınıf SumCheck'i koruyun, bir metodu @Test ile işaretleyin ve assertEquals(5, Sum.add(2, 3)); çağırın. 2 + 3 değeri 5 olduğunda kontrol geçer. İkinci demo Sum.add(4, 5) değerini 9 ile karşılaştırır. İsteğe bağlı JAR'ı sonraki sayfaya bırakın. Bu ders assertEquals ile JUnit kontrolüdür; Records accessor yazdırmak veya Streams hattı değildir.
5 isteyen bir kontrol
SumCheck.java dosyasını açın. Public sınıf adını SumCheck olarak tutun. JUnit hikâyesini gömen kalan Card records demolarını, kalan Pipe streams hatlarını, kalan Cue lambda yürüyüşlerini ve kalan Box Scanner istemlerini silin. Öğretim dosyası bir test sınıfıdır; oak yazdıran bir main değildir.
Dosyanın üstüne import ekleyin:
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
Aynı dosyada küçük bir yardımcı tutun:
class Sum {
static int add(int left, int right) {
return left + right;
}
}
SumCheck içinde bir test metodu yazın:
@Test
void addsTwoAndThree() {
assertEquals(5, Sum.add(2, 3));
}
@Test metodu runner'ın çalıştırması gereken bir kontrol olarak işaretler. assertEquals önce beklenen, sonra gerçek değeri alır. Burada beklenen 5, gerçek Sum.add(2, 3). Eşleşirler, kontrol geçer.
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
class Sum {
static int add(int left, int right) {
return left + right;
}
}
public class SumCheck {
@Test
void addsTwoAndThree() {
assertEquals(5, Sum.add(2, 3));
}
}
Bu dosyayı classpath'te JUnit 5 runner ile derleyip çalıştırın — IDE test düğmesi veya SumCheck sınıfını seçen bir konsol launcher jar. Kurs alışkanlığı hâlâ «test kaynağını derle, sonra kontrolleri çalıştır». Bu sayfada java SumCheck'i sıradan bir main programı gibi başlatmazsınız. t.name() yazdırmazsınız. Runner'dan @Test metodlarını çalıştırmasını istersiniz.
Kontrolü bir kez adım adım yürüyün. Sum.add(2, 3) 5 döner. assertEquals(5, ...) bu 5'i beklenen 5 ile karşılaştırır. Eşleşirler. Kontrol geçer. Rapor yeşil sonuç veya kısa bir başarı özeti gösterebilir; runner'a bağlıdır. Önemli öğretim gerçeği: beklenen ve gerçek uzlaştı.
Metoda bakarken yeni başlayan kuralını söyleyin: @Test kontrolü işaretler; assertEquals(expected, actual) karşılaştırır; metoda insanın okuyabileceği bir ad verin. Bu sayfada JAR paketleme demosu icat etmeyin. JAR sonraki isteğe bağlı dersi bekler. 9'a karşı başarısız kontrolü ilk demo sanmayın — ilk demo 5 ister.
Hâlâ kalan Card records dosyasından oak görüyorsanız SumCheck'e geçin ve assertEquals(5, Sum.add(2, 3)); bırakın. Runner test bulamazsa metodun @Test taşıdığını ve runner'ın reddedeceği şekilde private olmadığını doğrulayın.
9 isteyen ikinci kontrol
Aynı public sınıf SumCheck ve aynı Sum yardımcısını tutun. Test gövdesini başka bir toplam için değiştirin:
@Test
void addsFourAndFive() {
assertEquals(9, Sum.add(4, 5));
}
4 + 5 değeri 9'dur. Beklenen 9. Gerçek Sum.add(4, 5). Eşleşirler, bu kontrol de geçer. Bu sayfada her öğretim şekli için tek bir net kontrol tutun; beklenen sayı kolayca söylenebilsin.
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
class Sum {
static int add(int left, int right) {
return left + right;
}
}
public class SumCheck {
@Test
void addsFourAndFive() {
assertEquals(9, Sum.add(4, 5));
}
}
Kontrolü bir kez adım adım yürüyün. Sum.add(4, 5) 9 döner. assertEquals(9, ...) beklenen ve gerçeği karşılaştırır. Eşleşirler. Kontrol geçer. İki demoyu iki öğretim şekli olarak tutun. Önce 5 isteyen kontrolü kanıtlayın. Sonra 9 isteyen kontrolü. Her iki şekil JUnit importlarını, Sum yardımcısını ve @Test'i paylaşır.
İlk demo Sum.add(2, 3) değerini 9 ile karşılaştırsaydı kontrol düşerdi çünkü 5 ile 9 aynı değildir. O başarısız program ilk öğretim dosyası değildir. İlk öğretim dosyası 5 ister.
JUnit ne Records ne de JAR
Records, accessor ile yazdırdığınız kompakt bileşenler tuttu. JUnit sonucu beklediğiniz bir değerle karşılaştırır. JAR, sonraki isteğe bağlı sayfada gönderim için class dosyalarını paketler. Bu üç işi bugün tek bir başlangıç dosyasında karıştırmayın.
Buradaki 5, assertEquals içindeki beklenen değerdir. Tag record'dan t.n() değil ve stream map sonucu değildir. Kalan Card dosyası hâlâ oak yazdırıyorsa bunu geçmiş bırakın ve SumCheck assertion satırını tutun.
@Test olmadan birçok runner metodu kontrol olarak çalıştırmaz. assertEquals olmadan bu öğretim şeklinde karşılaştırma yoktur. İkisini de tutun. JAR komutlarını o derse kadar bu sayfadan uzak tutun.
Runner ve classpath alışkanlıkları
JUnit türleri org.junit.jupiter.api paketlerinde yaşar. Düzenleyici veya derleme aracı bu jar'ları derleme ve çalıştırma classpath'ine koymalıdır. Yeni başlayanlar sıkça test sınıfını doğru yapıştırır ve jar eksikken hâlâ «package does not exist» görür — classpath'i düzeltin, @Test yazımını değil.
Sum'ı aynı dosyada package-private tutun; tek public sınıf SumCheck kalsın. Beklenen değerleri assertEquals içinde açık literal olarak tutun. Metod adlarını okunaklı tutun. Sıradan System.out.println'i öğretim kontrollerinden uzak tutun; kendi debug'unuzda kullanmadıkça.
Derleme org.junit üzerinde düşerse import satırı doğrudur, kütüphane classpath'te yoktur. Runner sıfır test buldu derse eksik @Test veya seçmediğiniz sınıf adına bakın.
JAR öncesi klasör kontrolleri
JUnit jar'ları varken başarılı derlemeden sonra klasörü listeleyin. SumCheck.class ve genelde yanında Sum.class görmelisiniz. Kaynağı düzenleyin, kaydedin, yeniden derleyin, aynı runner alışkanlığıyla kontrolleri çalıştırın. Düzenlemeden sonra derlemeyi atlayınca bayat class değişen beklenen değeri gizleyebilir.
javac yinelenen public sınıflardan şikâyet ederse yalnızca SumCheck public kalsın. assertEquals(9, Sum.add(2, 3)) yazdıktan sonra kontrol düşerse uyumsuzluk gerçektir — tutmak istediğiniz demo için eşleşen çifti geri getirin.
Card record Tag'i SumCheck'e yapıştırmayın. Pipe stream().map'i assertEquals yerine koymayın. İsteğe bağlı JUnit işi, beklenen ve gerçeği karşılaştıran işaretli bir kontroldür.
İsteğe bağlı JAR öncesi
Public sınıf SumCheck, yardımcı Sum.add, JUnit @Test ve assertEquals importları, Sum.add(2, 3) için 5 kontrolü, sonra Sum.add(4, 5) için 9 kontrolü yapabilirsiniz. JUnit classpath'te derleyin ve JUnit 5 runner ile kontrolleri çalıştırın. Sonraki isteğe bağlı sayfa JAR'dır.
SumCheck demolarını net bir assertion çifti için tutun. JUnit çalışırken Card records dosyalarını bu sayfadan uzak tutun. JUnit çalışırken Pipe streams dosyalarını bu sayfadan uzak tutun. JAR işini o derse kadar bu sayfadan uzak tutun. Bu alışkanlıklar devam etmeden önceki kontrol noktasıdır. İlk kontrol 5 ister ve geçerse, ya da ikinci kontrol 9 ister ve geçerse, JUnit bu ders için işini yaptı; isteğe bağlı yolda devam ederseniz JAR'a hazırsınız.
Klasörde son tur: bir public SumCheck, package-private Sum, @Test mevcut, assertEquals(expected, actual) hizalı, JUnit importları mevcut, Scanner beklemesi yok, zorunlu stream hattı yok. Açık tuttuğunuz demoda bir kez daha derleyip kontrolleri çalıştırın. Beklenen ve gerçek hâlâ eşleşiyorsa JUnit şekli sağlamdır ve kurs sonraki sayfada isteğe bağlı JAR'a geçebilir. Her okuma için tek net assertion alışkanlığı tutun; her tur aynı haritayı öğretsin.
🧠 Bilginizi Test Edin
Bilginizi Test Edin
Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör
📝 Talimatlar
- Her soruyu dikkatle okuyun
- Her soru için en iyi cevabı seçin
- Quiz'i istediğiniz kadar tekrar alabilirsiniz
- İlerlemeniz üstte gösterilecek