@Test
- Kotlin kursu
- Orta seviye
- Ders 107/116
- 5 dk
@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
// 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
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
class CalculatorTest {
____
fun adds() { }
}
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.