unittest ile tanışma

Python'da Teste Giriş

Alexander Levin

Data Scientist

OOP kısa tekrar

  • OOP - nesne ve sınıflara dayalı programlama paradigması.
  • Sınıf - yöntem ve öznitelik içerebilen bir nesne şablonu.
  • Yöntem - bir sınıfa ait fonksiyon/prosedür.
  • Öznitelik - bir sınıfa ait değişken.
  • Nesne - bir sınıfın örneği.
  • Python sınıfı örneği:
    class Rectangle:
      # Rectangle yapıcı (constructor)
      def __init__(self, a, b):
          self.a = a
          self.b = b
      # Alan yöntemi
      def get_area(self):
          return self.a * self.b
    # Kullanım örneği
    r = Rectangle(4, 5)
    print(r.get_area())
    
>> 20
Python'da Teste Giriş

OOP Kalıtım (Inheritance)

  • Sınıflar diğer sınıflardan özellik miras alabilir.
  • Yeni sınıf adından sonra parantez içine ebeveyn sınıfı yazın.
    class RedRectangle(Rectangle):
      self.color = 'red'
    
Python'da Teste Giriş

unittest nedir

  • unittest - test otomasyonu için yerleşik Python çerçevesi (Python ile kurulur).
  • unittest - yalnızca birim testleri için değildir.
  • OOP tabanlı: her test durumu bir sınıf, her test bir yöntemdir.
  • Test case - bir test örneğidir.
  • Test suite - test case koleksiyonudur.
Python'da Teste Giriş

unittest vs. pytest

unittest

  • OOP tabanlı - test sınıfları oluşturmayı gerektirir)
  • Yerleşik ("Python" dağıtımıyla kurulur)
  • Daha fazla doğrulama yöntemi

pytest

  • Fonksiyon tabanlı - test_ ile başlayan betik ve fonksiyonları arar
  • Üçüncü taraf paket (Python dağıtımından ayrı kurulmalıdır)

  • Daha az doğrulama yöntemi

Python'da Teste Giriş

unittest ile nasıl test yazılır

Üs alma operatörü testi:

import unittest

# TestCase sınıfının bildirimi
class TestSquared(unittest.TestCase):
    # Testin tanımı
    def test_negative(self):
        self.assertEqual((-3) ** 2, 9)
Python'da Teste Giriş

Doğrulama (assertion) yöntemleri

  • .assertEqual(), .assertNotEqual()
  • .assertTrue(), .assertFalse()
  • .assertIs(), .assertIsNone()
  • .assertIsInstance(), .assertIn()
  • .assertRaises()
  • Daha fazlası
Python'da Teste Giriş

Özet

  • unittest - test otomasyonu için OOP tabanlı yerleşik Python çerçevesi
  • Test case - unittest içinde bir test örneği
  • Test oluşturma:
    1. unittest.TestCase'den miras alan bir sınıf tanımlayın
    2. Test fonksiyonlarını tanımlayın
  • Doğrulama yöntemleri
Python'da Teste Giriş

Hadi pratik yapalım!

Python'da Teste Giriş

Preparing Video For Download...