CodeBlanks Logo Icon CodeBlanks

Assertions

assertEquals, assertTrue ile iddiaları öğrenirsin.

Assertions: assertEquals, assertTrue

Assertion'lar, testte beklenen ile gerçek değeri karşılaştıran fonksiyonlardır. assertEquals(expected, actual) iki değerin eşit olduğunu, assertTrue(condition) koşulun doğru olduğunu doğrular. Eğer doğrulama başarısız olursa istisra fırlatılır ve test başarısız olur.

assertEquals(5, c.add(2, 3))
assertTrue(c.add(2, 3) > 0)

Burada birinci satır add(2, 3)'ün 5 olduğunu, ikinci satır sonucun pozitif olduğunu doğrular. Assertion'lar, check'ten daha açık hata mesajları üretir; beklenen ve gerçek değeri gösterir. JUnit'in Assertions nesnesi bu fonksiyonları sağlar; kotlin.test paketi de uyumlu sürümler sunar.

Assertion hata mesajları

Bir assertion başarısız olduğunda, JUnit ayrıntılı bir hata mesajı üretir. assertEquals, beklenen ve gerçek değeri mesaja ekler; böylece hatanın ne olduğunu anlarsın. assertTrue, koşulun yanlış olduğunu söyler. Mesaja ek bağlam eklemek için üçüncü bir dize argümanı verilebilir.

assertEquals(5, result, "add(2,3) 5 olmalı")
assertTrue(list.isEmpty(), "liste boş olmalı")

Burada her assertion'a bir mesaj eklenir; bu, test başarısız olduğunda neyin yanlış gittiğini açıklar. İyi mesajlar, testin neden başarısız olduğunu hızlıca anlamanı sağlar. Çok sayıda assertion tek testte birikirse, testi parçalamak iyi bir alışkanlıktır.

Uygulama assertEquals ile test doğrula

class Calculator tanımla; içinde fun add(a: Int, b: Int): Int = a + b olsun. Ardından fun assertEquals(expected: Int, actual: Int) yardımcı fonksiyonu tanımla; gövdesi eşit değilse AssertionError fırlatsın. main içinde val c = Calculator() ile örnek oluştur; assertEquals(5, c.add(2, 3)) ile doğrula; println("all passed") yazdır.

Başlangıç kodu

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

fun assertEquals(expected: Int, actual: Int) {
    if (expected != actual) throw AssertionError("expected $expected but was $actual")
}

// main: add(2, 3) sonucunu al, assertEquals ile 5 bekleniyor olarak doğrula
// "all passed" yazdır
fun main() {
    // buraya yaz
}

Örnek çözüm

Main.kt
fun main() {
    val c = Calculator()
    assertEquals(5, c.add(2, 3))
    println("all passed")
}

Beklenen çıktı

all passed

Soru ve cevaplar

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

1 assertEquals(4, calc.add(2, 2)) neyi doğrular?

  • add metodunun 2 döndürdüğünü
  • add metodunun 0 döndürdüğünü
  • add metodunun 4 döndürdüğünü Doğru cevap
  • add metodunun 22 döndürdüğünü

Açıklama: assertEquals(4, ...) gerçek değerin 4 olduğunu bekler.

2 Eşitlik doğrula

Soru
____(5, c.add(2, 3))
Cevap
assertEquals(5, c.add(2, 3))

Açıklama: assertEquals(5, ...) beklenen değerin 5 olduğunu doğrular.

3 Assertion türlerini eşle

Kavram Anlamı
assertEquals(a, b) Eşitlik
assertTrue(cond) Doğruluk
assertNull(x) Nullluk
assertFalse(cond) Yanlışlık

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