CodeBlanks Logo Icon CodeBlanks

@Test

@Test annotation'ı ile test yazmayı öğrenirsin.

@Test: Test metodu annotasyonu

@Test annotasyonu, bir metodun JUnit tarafından çalıştırılacak bir test olduğunu belirtir. Annotasyon, metodun üzerinde @Test yazılarak eklenir. JUnit, @Test'li metotları bulur ve her birini ayrı bir örnekle çalıştırır.

import org.junit.jupiter.api.Test

class CalculatorTest {
    @Test
    fun adds() {
        // doğrulama
    }
}

Annotasyon, metoda ek meta veri ekler; JUnit bu meta veriyi okuyarak metodu test olarak tanır. Bir test metodu başarısız olursa (istisna fırlatırsa) JUnit o testi başarısız olarak işaretler. Annotasyonlar Kotlin'de @ ile başlar ve sınıf veya metot üstüne yazılır.

Test metodu gövdesi

Bir test metodu, test edilen kodu çağırır ve sonucu doğrular. Doğrulama, genellikle bir assertion (iddia) ile yapılır: beklenen değer ile gerçek değer karşılaştırılır. Eğer eşleşmezse istisra fırlatılır ve test başarısız olur.

@Test
fun adds() {
    val c = Calculator()
    val result = c.add(2, 3)
    check(result == 5) { "5 bekleniyordu, geldi: $result" }
}

Burada check fonksiyonu koşulu doğrular; yanlışsa IllegalStateException fırlatır. Bu, Kotlin'in yerleşik doğrulama fonksiyonudur; JUnit'in assertEquals'i bir sonraki derste işlenecek. Test metodu başarılı olursa hiçbir şey fırlatılmaz ve test geçer.

Uygulama check ile test doğrula

class Calculator tanımla; içinde fun add(a: Int, b: Int): Int = a + b olsun. main içinde val c = Calculator() ile örnek oluştur; val result = c.add(2, 3) ile sonucu al; check(result == 5) ile doğrula; ardından println("passed") yazdır.

Başlangıç kodu

Main.kt
// Calculator sınıfı: add(a: Int, b: Int): Int = a + b
// main: add(2, 3) sonucunu al, check ile 5'e eşit olduğunu doğrula
// "passed" yazdır
fun main() {
    // buraya yaz
}

Örnek çözüm

Main.kt
class Calculator {
    fun add(a: Int, b: Int): Int = a + b
}

fun main() {
    val c = Calculator()
    val result = c.add(2, 3)
    check(result == 5)
    println("passed")
}

Beklenen çıktı

passed

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Test annotasyonu ekle

Soru
class CalculatorTest {
    ____
    fun adds() { }
}
Cevap
class CalculatorTest {
    @Test
    fun adds() { }
}

Açıklama: @Test, metodun test olduğunu belirtir.

2 @Test kavramlarını eşle

Kavram Anlamı
@Test Test annotasyonu
JUnit Çalıştırıcı
check(cond) Doğrulama
istisra Başarısız test

3 Bir test metodu ne zaman başarılı sayılır?

  • Hızlı tamamlanırsa
  • İstisra fırlatmadan tamamlanırsa Doğru cevap
  • Ekran çıktısı üretirse
  • Dosyaya yazarsa

Açıklama: Test, istisra fırlatmadan tamamlanırsa başarılıdır.

Orta seviye bölümündeki tüm dersler