Python unittest ile Birim Test Yazma
Python'da yazdığınız fonksiyonların doğru çalışıp çalışmadığını kontrol etmek için birim testler yazarsınız. unittest modülü bunu kolaylaştırır.
unittest, Python'un standart kütüphanesinde bulunan bir test çerçevesidir. TestCase sınıfından kalıtım alarak test sınıfları oluşturursunuz. Her test metodu `test_` ile başlamalıdır; unittest otomatik olarak bu metodları bulur ve çalıştırır.
Önce test edeceğimiz basit bir modül yazalım. Dosya adı calculator.py olsun:
1def add(a, b):2return a + b34def subtract(a, b):5return a - b67def multiply(a, b):8return a * bŞimdi test_calculator.py dosyasını oluşturun:
1import unittest2from calculator import add, subtract, multiply34class TestCalculator(unittest.TestCase):56def test_add(self):7self.assertEqual(add(2, 3), 5)8self.assertEqual(add(-1, 1), 0)910def test_subtract(self):11self.assertEqual(subtract(10, 3), 7)12self.assertEqual(subtract(0, 5), -5)1314def test_multiply(self):15self.assertEqual(multiply(4, 5), 20)16self.assertEqual(multiply(-2, 3), -6)1718if __name__ == '__main__':19unittest.main()Terminalde şu komutu yazın:
1python -m unittest test_calculator.pyBeklenen çıktı:
...
----------------------------------------------------------------------
Ran 3 tests in 0.001s
OK
Üç nokta, üç testin başarılı olduğunu gösterir.
- self.assertEqual(a, b): a ile b eşit mi?
- self.assertNotEqual(a, b): a ile b farklı mı?
- self.assertTrue(x): x doğru mu?
- self.assertFalse(x): x yanlış mı?
- self.assertIn(a, b): a, b içinde var mı?
Calculator'a hata ekleyin: add fonksiyonunu return a - b yapın. Tekrar çalıştırırsanız hatayı göreceksiniz.
Her fonksiyon için en az normal durum, sınır durumları (sıfır, negatif sayılar) ve hata durumlarını test edin. Böyle kod yazarken güvenli hissedersiniz.
0 yorum