Fixture’lara giriş

Python'da Teste Giriş

Alexander Levin

Data Scientist

Fixture nedir

  • Fixture: test yürütmesi için kullanılacak hazırlanmış bir ortam
  • Fixture kurulumu: bir veya daha fazla testin gerektirdiği ortamı ve kaynakları hazırlama süreci

Bir pikniğe hazırlığı düşünün:

  1. Arkadaşları davet edip yiyecekleri hazırlayın (bunu fixture’lar yapar)
  2. Eğlenin!
  3. Toparlayın
Python'da Teste Giriş

Neden fixture’a ihtiyaç var

Fixture’lar şunlara yardımcı olur:

  • Test kurulumunu kolaylaştırmak
  • Ortam hazırlığını testten yalıtmak
  • Fixture kodunu yeniden kullanılabilir kılmak
Python'da Teste Giriş

Fixture örneği: genel bakış

Varsayalım elimizde şunlar var:

  • data adlı bir Python list değişkeni
  • data = [0, 1, 1, 2, 3, 5, 8, 13, 21]

Ve şunları test etmek istiyoruz:

  • 9 öğe içerir
  • 5 ve 21 öğelerini içerir
Python'da Teste Giriş

Fixture örneği: kod

import pytest

# Fixture decorator
@pytest.fixture
# Fixture for data initialization
def data():
    return [0, 1, 1, 2, 3, 5, 8, 13, 21]

def test_list(data):
    assert len(data) == 9
    assert 5 in data
    assert 21 in data
Python'da Teste Giriş

Fixture örneği: çıktı

Örneğin çıktısı: fixture örneğinin çıktısı

Python'da Teste Giriş

Fixture nasıl kullanılır

Bir fixture kullanmak için şunları yaparız:

  1. Yazılımı ve testleri hazırlayın
  2. “Ortam hazırlığını” bulun
  3. Bir fixture oluşturun:
    • @pytest.fixture decorator’ünü tanımlayın
    • Fixture fonksiyonunu yazın
  4. Oluşturulan fixture’ı kullanın:
    • Test fonksiyonuna fixture adını geçin
    • Testleri çalıştırın!
Python'da Teste Giriş

Özet

Fixture’lar hakkında şunları öğrendik:

  • Fixture: test yürütmesi için kullanılacak hazırlanmış bir ortam
  • Test kurulumunu kolaylaştırır ve test fonksiyonlarından yalıtırız
  • Basit örnek: bir Python list hazırlama
  • Bir pytest fixture’ını @pytest.fixture ile tanımlayın
    • ardından bir fixture fonksiyonu gelir
  • Fixture adları testlerde değişken gibi kullanılır
Python'da Teste Giriş

Hadi pratik yapalım!

Python'da Teste Giriş

Preparing Video For Download...