Test işaretleyicilerini uygulama

Python'da Teste Giriş

Alexander Levin

Data Scientist

Test işaretleyicilerine genel bakış

  • Kullanım 1: koşul sağlanırsa testi atla
  • Kullanım 2: bu testin başarısız olması beklenir

  • Test işaretleyicisi - pytest kütüphanesinde bir testin etiketi (işaretleyicisi)

  • Testleri etiketleyerek (işaretleyerek) belirli test davranışlarını tanımlamayı sağlar
Python'da Teste Giriş

İşaretleyici söz dizimi

  • Dekoratör - bir Python tasarım deseni; mevcut bir nesnenin yapısını değiştirmeden yeni işlevler eklemeyi sağlar
  • Test işaretleyicisi söz dizimi @pytest.mark dekoratörü ile başlar:
import pytest

def get_length(string):
    return len(string)

# The test marker syntax
@pytest.mark.skip
def test_get_len():
    assert get_length('123') == 3
Python'da Teste Giriş

Skip ve skipif işaretleyicileri

  • Her durumda testin atlanmasını istediğinizde @pytest.mark.skip kullanın
  • Koşul True ise testin atlanmasını istediğinizde @pytest.mark.skipif kullanın
Python'da Teste Giriş

Skip işaretleyicisi örneği

  • Süresiz olarak bir testi atlamak istediğinizde @pytest.mark.skip kullanın.
import pytest
def get_length(string):
    return len(string)

# The skip marker example
@pytest.mark.skip
def test_get_len():
    assert get_length('123') == 3
Python'da Teste Giriş

Skip işaretleyicisi: çıktı

  • Atlanan bir testin çıktısı:

pytest.mark.skip örneği

Python'da Teste Giriş

Skipif işaretleyicisi örneği

  • Koşul True ise testin atlanmasını istediğinizde @pytest.mark.skipif kullanın.
import pytest
def get_length(string):
    return len(string)

# The skipif marker example
@pytest.mark.skipif('2 * 2 == 5')
def test_get_len():
    assert get_length('abc') == 3
Python'da Teste Giriş

Skipif işaretleyicisi: çıktı

  • Koşullu olarak atlanan bir testin çıktısı:

pytest.mark.skipif örneği

Python'da Teste Giriş

Xfail işaretleyicisi

  • Bir testin başarısız olmasını beklediğinizde @pytest.mark.xfail kullanın
import pytest

def gen_sequence(n):
    return list(range(1, n+1))

# The xfail marker example
@pytest.mark.xfail
def test_gen_seq():
    assert gen_sequence(-1)
Python'da Teste Giriş

Xfail işaretleyicisi: çıktı

  • Başarısız olması beklenen bir testin çıktısı:

pytest.mark.xfail örneği

Python'da Teste Giriş

Özet

Test işaretleyicisi:

  • pytest kütüphanesinde bir testin özniteliğidir
  • Belirli testler için davranış belirtir
  • Söz dizimi @pytest.mark.name_of_the_marker ile başlar
  • pytest’te hazır bulunanlar:
    • @pytest.mark.xfail
    • @pytest.mark.skip
    • @pytest.mark.skipif
Python'da Teste Giriş

Haydi pratik yapalım!

Python'da Teste Giriş

Preparing Video For Download...