Tekrar hoş geldiniz.
Birim testlerimizle devam edelim.
Şimdi, burada fark ettiğim bir şey, dokümantasyona baktığımda, aslında bir assert
is örneğimiz var.
Yani aslında assert true demek yerine, A ve B'yi verdiğimiz assert as instance'ı kullanabiliriz, yine,
tüm bu assert yöntemleri, doğru bir tane yoktur, kodunuzu geliştirmek için bir araç olarak istediğinizi
kullanabilirsiniz.
Yani benim durumumda, bunu assert as instance olarak değiştirelim ve bunu düzeltelim.
Bunun gibi.
Yani biraz daha temiz.
Bakalım işe yarayacak mı?
Tamam.
Her şey hala iyi.
Tamam, kodumuzu tekrar kırmayı deneyelim.
Yani her şey iyi görünüyor.
Peki ya farklı bir şey yaparsak?
Ya yaparsak?
Diyelim ki, başka bir test ekleyin ve test diyelim.
Sen de bir şeyler yap.
Genellikle bu işlevleri çok daha iyi adlandırmak istersiniz, böylece daha açıklayıcı olurlar.
Ancak bizim durumumuzda, bu sefer nasıl çalıştıklarını görebilmemiz için bu iyi.
Test yapalım ram eşit olacak.
Hiçbirine ne dersin?
Şimdi bunu çalıştırırsam, bu kodu tekrar çalıştıralım.
Bu arada, burada bir testteki kodu nasıl kopyaladığımı fark edebilirsiniz ve şunu düşünebilirsiniz: Peki, bunu
daha basit hale getirebilir miyiz?
Ve kendimizi tekrar etmeyelim.
Ve bunu kesinlikle yapabilir ve işleri çok daha kolay hale getirebilirsiniz.
Ancak testler söz konusu olduğunda, üretime girmedikleri ve bu sadece geliştirme amaçlı olduğu için,
diğer insanların testlerinizi anlayabilmesi için gerçekten okunması kolay testlere sahip olmak istersiniz.
Çünkü test söz konusu olduğunda, okunabilirlik gerçekten çok önemlidir.
Kendimizi tekrar etmemeye ve kodumuzu verimli, güzel ve küçük yapmaya o kadar önem vermiyoruz.
Bu yüzden gerçekten açıklayıcı, gerçekten bariz testler yazmayı seviyorum.
Burada self, dot, assert equal ve diyelim.
Hmm, bu ne olmalı?
Bu durumda, bir değer hatası bekliyorum.
O zaman şöyle yapalım.
Sonucun bir değer hatası olmasını bekliyorum.
Testimi kaydedip çalıştıracağım.
Tamam, hava alıyorum.
Bunun argümanda bir tür hatası olduğunu söylüyor.
Bir dize olmalıdır.
Ve ben ona tip olmayan veriyorum.
Tamam.
Yani bu düzgün bir şekilde işlemiyor çünkü int ile çalışmıyor ve bir tür hatası alıyoruz.
Peki bunu nasıl düzeltebiliriz?
Parametrede tip olmayan bir parametre almamız durumunda bunu nasıl ayarlayabiliriz?
Öncelikle, buna varsayılan bir parametre verelim.
Varsayılan parametrenin sıfır olduğunu varsayalım.
Eğer bunu çalıştırırsam.
Tekrar.
Hala hata alıyorum.
Tamam, hala tamir edemedik.
Argüman kesin olmalıdır.
Nesne veya sayı gibi bir bi, tür olmayan değil.
Yani hala tip olmayanları kontrol etmiyoruz.
Yani yapabileceğimiz bir başka şey de şu.
Eğer numaraysa.
Yani sayı değerine sahip olup olmadığımızı kontrol ediyoruz.
Çünkü unutmayın, herhangi bir sayı ya da herhangi bir değer varsa bu varsayılan olarak true olacaktır, ancak
tür olmayan bir şeyse false'a dönüşecektir.
Yani burada, eğer sayı bunu döndürürse diyebiliriz.
Başka.
Aksi takdirde, geri döneceğiz.
Lütfen.
Numarayı girin.
Bu yüzden bunu söyleyeceğim ve şimdi bunu değiştireceğim çünkü şimdi lütfen testime sayı girmenizi
beklemeliyiz ve assert equal diyeceğim.
Bu sonuç.
Olacak.
Lütfen numarayı girin.
Şimdi testimi çalıştırırsam, bunu temizleyelim.
Oop.
Görünüşe göre 0 saniyede iki test çalıştırıyorum, ancak üç testimiz var ve bunun nedeni.
Burada benimkine de aynı ismi verdiğimi görüyorsunuz.
Unutmayın, bir şeye aynı ismi verirseniz, sadece bir tanesini çalıştıracaktır.
Bu nedenle, tüm test adlarının benzersiz olduğundan emin olun.
Bunu çalıştıracağım.
Tamam.
Üç test yaptım ve her şey yolunda gidiyor.
Çok, çok havalı.
Burada çok basit bir fonksiyondan nasıl bu hataları yakalamaya başladığımızı ve yanlış
bir girdi aldığımızda fonksiyonumuzun ne kadar basit olduğunu fark etmeye başladığımızı görebilirsiniz.
Sevdim.
Bir dize veya tür olmayan.
Bunu yapar yapmaz işlevimiz başarısız oldu.
Böylece testler kullanarak ve bir şeyleri test edip bozarak bu işlevi geliştirebildim.
Böylece daha dayanıklı hale geldi ve artık üretimde çok daha iyi çalışıyor.
Değil mi?
İşte bu da testlerin gücüdür.
Yapmış olabileceğimiz hataları kontrol etmemizi sağlar çünkü belki de başlangıçta böyle bir şey yapmayı
düşünmemiş olabiliriz.
Ancak kodumuzla birlikte testler yazarak işlevi geliştirebildik.
Şimdi, eklemek istediğim son bir şey var.
Testlerin üzerine bir tane daha ekleyelim ve bunun test parametresinin sadece boş bir dize olması durumunda ne
yapacağını söyleyelim.
Almalıyız.
Lütfen bir numara girin.
Yani eğer bunu çalıştırırsam.
Tamam.
Dört test geçiyor, yani kodumuz güzel çalışıyor gibi görünüyor.
Şimdi sözlerimi bitirirken birkaç hususa dikkat çekmek istiyorum.
Birim Testi Ana Merkezi'nden arıyorum.
Ancak bunun gerçekle hiçbir ilgisi yoktur.
Dosya.
Yazdığımız ana dosya.
Diyelim ki bunu yeniden adlandırdım, o zaman masaüstüme gidelim.
Ve de ki, bunu şöyle değiştirmek istiyorum.
Senaryo, nokta pasta.
Şimdi bu dosyamı yüce bir metinle açalım.
Buraya geri dönelim.
Yani burada ana pi'nin artık var olmadığını görüyorsunuz.
Kaydetmemi istiyor.
Yani bu tamamen farklı bir dosya.
Şimdi, burada komut dosyası yaparsam ve tüm örnekleri komut dosyası olarak değiştirirsem.
Eğer bunu kaydedersem ve şimdi çalıştırırsam.
Main'deki bu hala çalışan birim testi basitçe şöyle diyor: Hey, tüm testleri burada çalıştır.
Şimdi bir şey var ve bu daha önce bahsettiğimiz yaygın bir uygulamadır, çünkü çalıştırılan
ana dosya buysa bu dosyayı çalıştır demek istersiniz, çünkü test main veya bunun gibi bir şeyi diğer dosyalara
aktarmak istemeyiz.
Bunlar, yalnızca testlerimizi çalıştırdığımızda çalıştırılması gereken ayrı dosyalardır.
Böylece sadece alt çizgi varsa, alt çizgi adı diyebilirim.
Eşittir.
Alt çizgi alt çizgi ana.
Ardından bu kod parçasını çalıştırın.
Şimdi bunu kaydedip çalıştırırsam.
Al bakalım.
Her şey hala çalışıyor.
Ama şimdi bunun bir test dosyası olduğundan emin oluyorum.
Ve bu kodu yalnızca çalıştırılan dosya bu ise, çalıştırılan ana dosya bu ise çalıştıracağım.
Yani bu, birim testinizi birim test modülü ile yaptırmanızın standart bir yoludur.
Bir ara verelim ve bir sonraki videoda testler hakkında biraz daha konuşalım.