JUnit5 ile Test Yazma
Testleri yapılandırın
JUnit5 ile Test Yazma, CoddyKit'te ücretsiz bir Kotlin Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Kotlin Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Kotlin Academy kursu toplamda 4 dersten oluşur.
JUnit5 nedir?
JUnit5 (JUnit Jupiter), JVM ve Kotlin için standart test çatısıdır. Test kodunu işaretlemek ve yapılandırmak için ek açıklamalar sağlar.
- Testler
src/test/kotliniçinde bulunur - Her test bir işlevdir
- Çalıştırıcı bunları yürütür ve sonuçları bildirir
Bağımlılık ekleme
JUnit Jupiter'ı test yapılandırmanıza ekleyin ve JUnit platformunu etkinleştirin.
dependencies {
testImplementation("org.junit.jupiter:junit-jupiter:5.10.2")
}
tasks.test {
useJUnitPlatform()
}İlk testiniz
Bir işlevi @Test ile işaretleyin. Test, kodunuzla ilgili bir şeyi doğrular.
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.Assertions.assertEquals
class MathTest {
@Test
fun addsTwoNumbers() {
assertEquals(4, 2 + 2)
}
}Açıklayıcı test adları
Uzun işlev adları kullanmadan okunabilir test raporları oluşturmak için @DisplayName kullanın.
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.DisplayName
class OrderTest {
@Test
@DisplayName("total includes tax")
fun totalWithTax() {
// ...
}
}@BeforeEach ile hazırlık
@BeforeEach, her testten önce çalışır ve yeni test verileri oluşturmak için idealdir. @AfterEach ise temizlik amacıyla her testten sonra çalışır.
import org.junit.jupiter.api.BeforeEach
class CartTest {
private lateinit var cart: MutableList<String>
@BeforeEach
fun setUp() {
cart = mutableListOf()
}
}Sınıf düzeyinde hazırlık
@BeforeAll ve @AfterAll, sınıfın tamamı için bir kez çalışır. Kotlin'de bunlar, @JvmStatic içeren bir eşlikçi nesneyle (veya sınıf başına yaşam döngüsüyle) kullanılmalıdır.
import org.junit.jupiter.api.BeforeAll
class DbTest {
companion object {
@BeforeAll
@JvmStatic
fun connect() {
// open shared connection
}
}
}Hazırla-Uygula-Doğrula
Her testi üç açık aşamada yapılandırın:
- Hazırla — girdileri ve durumu ayarlayın
- Uygula — test edilen kodu çağırın
- Doğrula — sonucu doğrulayın
Bu yaklaşım testlerin okunabilir ve odaklı kalmasını sağlar.
İç içe testler
@Nested, ilişkili testleri gruplandırır ve davranışı belgeleyen ağaç biçimli bir rapor oluşturur.
import org.junit.jupiter.api.Nested
import org.junit.jupiter.api.Test
class StackTest {
@Nested
inner class WhenEmpty {
@Test fun isEmpty() { /* ... */ }
}
}Parametreli testler
@ParameterizedTest ve bir değer kaynağı kullanarak aynı testi birden çok girdiye uygulayın.
import org.junit.jupiter.params.ParameterizedTest
import org.junit.jupiter.params.provider.ValueSource
import org.junit.jupiter.api.Assertions.assertTrue
class NumberTest {
@ParameterizedTest
@ValueSource(ints = [2, 4, 6])
fun isEven(n: Int) {
assertTrue(n % 2 == 0)
}
}Devre dışı bırakma ve etiketleme
Bir testi geçici olarak atlamak için @Disabled, testleri gruplandırmak için @Tag kullanın. Böylece sürekli tümleştirme çalıştırmalarında bunları dahil edebilir veya hariç tutabilirsiniz.
import org.junit.jupiter.api.Disabled
import org.junit.jupiter.api.Tag
import org.junit.jupiter.api.Test
class FlakyTest {
@Test
@Disabled("fix later")
@Tag("slow")
fun pending() { }
}Tek başına çalışan bir örnek
Burada basit bir saf Kotlin işlevi ve bunu test etmenin temel fikri yer alıyor (testin kendisi JUnit altında çalışır).
fun add(a: Int, b: Int): Int = a + b
fun main() {
val result = add(2, 3)
println(if (result == 5) "PASS" else "FAIL")
}Hızlı kontrol
Her test yönteminden önce yeni ve boş bir listeye ihtiyacınız var. Hangi ek açıklama uygundur?
Özet
JUnit5 testlerini şu şekilde yapılandırabilirsiniz:
@Testtestleri işaretler,@DisplayNametestlere ad verir@BeforeEach/@BeforeAllhazırlığı yönetir- Hazırla-Uygula-Doğrula yaklaşımı testleri açık tutar
@Nestedve@ParameterizedTesttestleri düzenler ve ölçeklendirir
Sonraki konu: doğrulamalar.
Yapay zeka eğitmeniyle Kotlin öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 51
- Dersler
- 203
Sıkça Sorulan Sorular
“JUnit5 ile Test Yazma” dersi ücretsiz mi?
Evet — “JUnit5 ile Test Yazma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Kotlin Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Kotlin Academy kursu toplamda 4 dersten oluşur.
“JUnit5 ile Test Yazma” dersinde ne öğreneceğim?
Testleri yapılandırın Kotlin Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Kotlin Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Kotlin Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“JUnit5 ile Test Yazma” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Kotlin Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Kotlin Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- JUnit5 ile Test Yazma
- Doğrulamalar
- MockK ile Taklitler
- Korutin Testi