Yazdığım tek test türü
Dec 04 2022
Mühendislik dünyasında, hangi tür testlerin daha iyi olduğu hakkında neredeyse sürekli bir arka plan düzeyinde konuşma vardır; birim testleri, entegrasyon testleri, uçtan uca testler vb. Bir süre önce, sadece bir tür test yazmaya karar verdim.
Mühendislik dünyasında, hangi tür testlerin daha iyi olduğu hakkında neredeyse sürekli bir arka plan düzeyinde konuşma vardır; birim testleri, entegrasyon testleri, uçtan uca testler vb.
Bir süre önce, sadece bir tür test yazmaya karar verdim.
Yukarıdaki kategorilerden herhangi birine tam olarak uyduğundan emin değilim. Belki de 'entegrasyon testi' en doğru olanıdır, ancak bu onu tam olarak kapsamaz - en önemlisi, hiç kimse bu farklı etiketlerin ne anlama geldiğini gerçekten nasıl tanımlayacağı konusunda gerçekten anlaşamaz.
İşte izlediğim ilkeler:
- Net bir ortak arayüz tanımlanmış olana kadar tek bir test yazmam.
- Testlerim, gerçek bir kullanıcının davranışını olabildiğince yakından taklit etmelidir . Bu, yalnızca genel apis'i çağırmak veya son kullanıcı için tasarlanmış bir ön uç arabirimiyse, yalnızca bir son kullanıcının yapacağını yapmak anlamına gelir.
- Bir işlev veya bileşen genel arayüzün parçası değilse, onu doğrudan test etmem. Bazı genel yollarla dolaylı olarak çağırmak mümkün değilse, zaten amacı tam olarak nedir?
- Uzak ağ araması yok. Bu, localhost'a yapılan bir çağrı değilse (örneğin, yerel bir test veritabanı), alay edilmesi gerekir. Testlerim, ağ veya internet bağlantısı olmadan tutarlı bir şekilde geçmelidir.
- Dahili kod yollarıyla dalga geçilmez. Ağ sınırında alay etmek harika, ancak test ettiğim kod tabanında var olan işlevler veya api'lerle alay etmek işe yaramaz.
- Farklı testler arasında hiçbir durum taşınmadı. Bir test, önceki bir testin durumuna bağlıysa veya bu durumdan herhangi bir şekilde etkilenebilirse, bir şeyler ters gitti demektir. Bu, 'her testten sonra tüm durumu temizle' anlamına gelmek zorunda değildir.
- Dahili durum testi yok. Testimde bazı dahili durumları elle başlatmam veya düzeltmem gerekirse (mevcut başka bir genel arabirim kullanmadan), testim muhtemelen iyi değil.
- Dahili uygulama ayrıntılarının testi yok. Kodumu yeniden düzenlemek testin başarısız olmasına neden olacaksa, bu muhtemelen iyi bir test değildir.
- Dahili işlevleri çağıran 'birim testleri' yok. Bunun gibi işlevleri test etmek için güçlü bir istek duyarsam, muhtemelen önceden kendi iş mantığımdan tamamen ayrılmış net bir arayüzle kendi bağımsız modüllerine veya paketlerine ayrılmalılar.
- Bunu yerel ana bilgisayarımda yapmak son derece uygun olmadıkça, tam bir sunucu ve veritabanı ile birden çok hizmetin döndürülmesini ve bunların hepsinin birlikte çalıştırılmasını gerektiren 'uçtan uca' stil testleri yok.
- 'Kod satırlarının kapsamı' yerine 'kullanım durumlarının kapsamına' odaklanıyorum.
- Genel arayüzün nasıl görüneceği önceden çok netse, önce bir test yazın. Aksi takdirde, önce kodu yazın, sonra test edin.
- Bir test yazmamak veya bir kullanım senaryosunu denenmemiş bırakmaktan daha iyi olduğunda yukarıdaki kurallardan herhangi birini çiğniyorum.
Nicole Kidman, Michael Keaton ve Val Kilmer'in Batman Olarak Paylaştığı Bu 1 Çekici Özelliğe Bayıldı
Kevin Jonas'ın Kızı Alena, Doğum Günü Fotoğrafında Büyümüş Görünüyor: '9 Yaşında Gerçek Hissetmiyor'

![Bağlantılı Liste Nedir? [Bölüm 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































