assert
- Python kursu
- İleri seviye
- Ders 14/83
- 5 dk
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
# 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
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
assert len("abc") == 3, ____
assert len("abc") == 3, "uzunluk 3 olmalı"
Açıklama: İkinci argüman mesajdır; AssertionError ile birlikte gösterilir.