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 + b
3
4def subtract(a, b):
5return a - b
6
7def multiply(a, b):
8return a * b

Şimdi test_calculator.py dosyasını oluşturun:

1import unittest
2from calculator import add, subtract, multiply
3
4class TestCalculator(unittest.TestCase):
5
6def test_add(self):
7self.assertEqual(add(2, 3), 5)
8self.assertEqual(add(-1, 1), 0)
9
10def test_subtract(self):
11self.assertEqual(subtract(10, 3), 7)
12self.assertEqual(subtract(0, 5), -5)
13
14def test_multiply(self):
15self.assertEqual(multiply(4, 5), 20)
16self.assertEqual(multiply(-2, 3), -6)
17
18if __name__ == '__main__':
19unittest.main()

Terminalde şu komutu yazın:

1python -m unittest test_calculator.py

Beklenen çı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.

konu hakkında tepkinizi verebilirsiniz