PyUnit Eğitimi: Python Birim Test Çerçevesi (Örnekle)

İçindekiler:

Anonim

Birim Testi nedir?

Python'da Birim Testi, hataların daha az tekrarlandığı ve düzeltilmesi daha ucuz olduğu durumlarda, uygulamanın geliştirme aşamasının başlarında hataları belirlemek için yapılır.

Birim testi, Python'da küçük bir işlevsellik "birimini" doğrulamak için tasarlanmış, komut dosyası yazılmış bir kod seviyesi testidir. Birim testi, test fikstürlerini temel alan nesne yönelimli bir çerçevedir.

Python Birim Test Teknikleri

Python Birim Testi, herhangi bir bağımlı koda erişmeden belirli bir modülü test etmeyi içerir. Geliştiriciler, kodu "birimlere" ayırmak ve ayrı parçalar üzerinde birim düzeyinde test yapmak için saplamalar ve taklitler gibi teknikleri kullanabilir.

  • Test-Driven Development TDD: Unit Testing, Python ile birlikte yapılmalıdır ve bunun için geliştiriciler Test-Driven Development metodunu kullanmalıdır. TDD yönteminde önce Python Birim testleri tasarlarsınız ve ancak o zaman bu özelliği uygulayacak kodu yazmaya devam edersiniz.
  • Saplamalar ve Taklitler: Test edilmekte olan sahte yöntemleri simüle eden iki ana tekniktir. Bir Saplama düzgün çalışması için birim testi için gerekli bazı bağımlılık içinde dolgu için kullanılır. Öte yandan bir Mock , assert koyduğumuz testleri çalıştıran sahte bir nesnedir.

    Her iki yöntemin amacı, bir sınıfın veya işlevin tüm bağımlılıklarının test edilmesini ortadan kaldırmak için aynıdır.

Python Birim Test Çerçevesi

Birim Testi sürecini kolaylaştırmak ve projenizin kalitesini artırmak için Python Birim Test Çerçevesi önerilir. Unit Testing çerçevesi şunları içerir:

  • PyUnit: PyUnit, kodun otomatik olarak test edilmesi için armatürleri, test senaryolarını, test takımlarını ve bir test çalıştırıcısını destekler. PyUnit'te, test senaryolarını aynı armatürlere sahip süitler halinde düzenleyebilirsiniz.
  • Nose: Nose'un yerleşik eklentileri çıktı yakalama, kod kapsamı, doctestler vb. İle size yardımcı olur. Burun sözdizimi oldukça basittir ve test yazma engellerini azaltır. Testi kolaylaştırmak için Python birim testini genişletir.
  • Doctest: Doctest test betiği, dosyanın altındaki küçük işlevle docstring'e girer. Doctest, belgelerde yer alan örnekleri çalıştırarak ve beklenen sonuçları döndürdüklerini doğrulayarak kodunuzu test etmenize olanak tanır. Doctest kullanım durumu daha az ayrıntılıdır ve özel durumları yakalamayın. Bir modülün ve bileşenlerinin ana kullanım durumunun açıklayıcı bir dokümantasyonu olarak faydalıdırlar.

PyUnit ile Birim Testi

Pyunit, JUnit'in bir Python bağlantı noktasıdır. Pyunit'in bir parçası olarak, birim test modülünde beş anahtar sınıf vardır.

  • TestCase sınıfı : TestCase sınıfı, test rutinlerini taşır ve her rutini yapmak ve daha sonra temizlemek için kancalar sunar
  • TestSuite sınıfı : Bir toplama kabı olarak hizmet verir ve birden çok test senaryosu nesnesine ve birden çok testsuite nesnesine sahip olabilir
  • TestLoader sınıfı : Bu sınıf, yerel olarak veya harici bir dosyadan tanımlanan test olaylarını ve süitleri yükler. Bu süitlere ve kasalara sahip bir test takımı nesnesi yayar
  • TextTestRunner sınıfı : Testleri çalıştırmak için testleri yürütmek için standart bir platform sunar
  • TestResults sınıfı : Test sonuçları için standart bir kap sunar

PyUnit kullanarak Python Testi için bir test senaryosu tasarlama

Birim testi, yeni test senaryoları oluşturmak için kullanılabilecek bir temel sınıf olan test senaryosu sağlar. Test senaryosunu tasarlamak için kullanılan üç grup yöntem vardır:

unittest.TestCase

setUp()teardown()skipTest(aMesg:string)fail(aMesg:string)id():stringshortDescription():string

İlk sette ön ve son test kancaları bulunur. Setup () yöntemi, her test rutininden önce, teardown () rutinden sonra başlar.

İkinci yöntem grubu, testin yürütülmesini kontrol eder. Her iki yöntem de girdi olarak bir ileti dizesi alır ve her ikisi de devam eden bir testi iptal eder. Ancak skiptest () yöntemi, fail () yöntemi tamamen başarısız olurken geçerli testi iptal eder.

Son veya üçüncü yöntem, testin belirlenmesine yardımcı olur. Yöntem id (), test olayı nesnesinin ve test rutininin adından oluşan bir dize döndürür. Ve shortDescription () yöntemi, her test rutininin başlangıcında docstr açıklamasını döndürür.

Python Birim testini kullanmanın avantajları

  • Geliştirme döngüsünün başlarında hataları tespit etmenize yardımcı olur
  • Daha iyi programlar yazmanıza yardımcı olur
  • Diğer test yöntemleri ve araçlarıyla kolayca senkronize olur
  • Çok daha az hataya sahip olacak
  • Çok daha az sonuçla gelecekte değişiklik yapmak daha kolaydır