CodeBlanks Logo Icon CodeBlanks

assert

assert ile iddiaları öğrenirsin.

assert

assert, bir koşulun doğru olduğunu denetler. Yanlışsa AssertionError fırlatır ve test başarısız olur. Doğruysa sessizce devam eder.

Söz dizimi: assert koşul ya da assert koşul, mesaj. Mesaj, hata oluşunca ek bilgi verir.

assert 2 + 2 == 4
assert len("abc") == 3, "uzunluk 3 olmalı"
assert [1, 2, 3] == [1, 2, 3]

pytest, AssertionError'ı yakalayıp testi başarısız işaretler. Koşul doğruysa test sessizce geçer; bu yüzden son satırda print("ok") gibi bir işaret koyabilirsin.

Yaklaşımlar: eşitlik ve üyelik

En sık kullanılan denetimler eşitlik (==), eşitsizlik (!=), büyüktür/küçüktür (>, <) ve üyeliktir (in).

Örnek: bir filtre fonksiyonu test ediyorsan, assert filter([1, 2, 3]) == [2, 3] ile sonucu direkt karşılaştırırsın. İçinde bir öğe var mı diye bakmak için assert 3 in filter([1, 2, 3]) yazarsın.

Birden çok assert aynı testte kullanılabilir; her biri ayrı bir denetimdir. İlk başarısız olan testi durdurur.

Uygulama is_even fonksiyonunu test et

is_even(n) fonksiyonunu yaz; n % 2 == 0 döndürsün. test_is_even() fonksiyonunda üç denetim olsun: assert is_even(4), assert not is_even(5) ve assert is_even(0). Dosya sonunda test_is_even() çağrısı ve print("ok") olsun.

Başlangıç kodu

main.py
# is_even fonksiyonu: n çift mi diye True/False döndür
# test_is_even fonksiyonu: üç denetim yapsın (4 çift, 5 tek, 0 çift)
# test_is_even() çağrısı ve "ok" yazdır

Örnek çözüm

main.py
def is_even(n):
    return n % 2 == 0

def test_is_even():
    assert is_even(4)
    assert not is_even(5)
    assert is_even(0)

test_is_even()
print("ok")

Beklenen çıktı

ok

Soru ve cevaplar

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

1 assert biçimlerini eşleştir

Kavram Anlamı
assert x == 5 Eşitlik denetimi
assert x != 0 Eşitsizlik denetimi
assert cond, msg Mesajlı denetim
assert x in items Üyelik denetimi

2 assert koşulu yanlışsa ne olur?

  • Test sessizce geçer
  • AssertionError fırlar ve test başarısız olur Doğru cevap
  • Yalnızca uyarı yazdırılır
  • Program çöker ve kapanır

Açıklama: assert yanlış koşulda AssertionError fırlatır; pytest testi başarısız işaretler.

3 Mesajlı assert tamamla

Soru
assert len("abc") == 3, ____
Cevap
assert len("abc") == 3, "uzunluk 3 olmalı"

Açıklama: İkinci argüman mesajdır; AssertionError ile birlikte gösterilir.

İleri seviye bölümündeki tüm dersler