Entegrasyon ve birim testler
Birim testlerinizi ve entegrasyon testlerinizi tamamen ayrı tutmalısınız. Birim testleriniz yalnızca bir şeyi ve bir şeyi test etmeli ve sisteminizin geri kalanının tamamen yalıtılmasını sağlamalıdır. Bir birim gevşek bir şekilde tanımlanmıştır, ancak genellikle bir yönteme veya işleve dayanır.
Her birim için testlerin yapılması mantıklıdır, böylece algoritmalarının doğru bir şekilde uygulandığını bilirsiniz ve uygulama hatalıysa hemen neyin yanlış gittiğini bilirsiniz.
Birim testi sırasında tamamen yalıtıldığınız için uygulamanızın geri kalanı gibi davranmak için saplama ve sahte nesneleri kullanırsınız. Entegrasyon testlerinin devreye girdiği yer burasıdır. Tüm birimleri ayrı ayrı test etmek harikadır, ancak birimlerin gerçekten birlikte çalışıp çalışmadığını bilmeniz gerekir.
Bu, bir modelin gerçekten bir veritabanında depolanıp depolanmadığını veya X algoritması başarısız olduktan sonra gerçekten bir uyarı verilip verilmediğini bilmek anlamına gelir.
Test odaklı geliştirme
Bir adım geri atmak ve Test Odaklı Gelişim'e (TDD) bakarak dikkate alınması gereken birkaç şey var.
- Gerçekten geçmesini sağlayan kodu yazmadan önce birim testinizi yazarsınız.
- Test geçişini yaparsınız, bunu gerçekleştirmek için yeterli kodu yazın.
- Test geçtiğine göre artık geri adım atmanın zamanı geldi. Bu yeni işlevsellik sayesinde yeniden düzenleyecek bir şey var mı? Her şeyi testlerle kapsadığı için bunu güvenli bir şekilde yapabilirsiniz.
Önce entegrasyon ile son entegrasyon
Entegrasyon testleri bu TDD döngüsüne iki yoldan biriyle uyum sağlar. Onları önceden yazmayı seven insanları tanıyorum. Entegrasyon testini uçtan uca test olarak adlandırırlar ve bir uçtan uca testi, bir usecase'in tüm yolunu tamamen test eden bir test olarak tanımlarlar (bir uygulama kurmayı, önyüklemeyi, bir denetleyiciye gitmeyi, yürütmeyi, Sonucu, çıktıyı vb. kontrol etme). Daha sonra ilk ünite testleriyle başlarlar, geçerler, bir saniye eklerler, geçerlerler, vs. ... Özellik bitene kadar entegrasyon testinin yavaş yavaş gittikçe daha fazla kısmı da geçer.
Diğer stil, birim testi ile özellik birim testi oluşturmak ve daha sonra gerekli görülen entegrasyon testlerini eklemek. Bu ikisi arasındaki en büyük fark, önce entegrasyon testi durumunda, bir uygulamanın tasarımını düşünmek zorunda kalmanızdır. Bu tür, TDD'nin test etme kadar uygulama tasarımı ile ilgili olduğu fikrine katılmamaktadır.
Pratik ve uygulamaya yönelik
İşimde tüm testlerimizi aynı projede yapıyoruz. Ancak farklı gruplar var. Sürekli entegrasyon aracı, önce birim testleri olarak işaretlenenleri çalıştırır. Ancak başarılı olanlar daha yavaşsa (gerçek istekler yaptıkları için, gerçek veritabanları vb. Kullanın) entegrasyon testlerini de gerçekleştirirler.
Bu arada genellikle bir sınıf için bir test dosyası kullanıyoruz.
Önerilen Okuma
- Testler eşliğinde büyüyen nesne yönelimli yazılım Bu kitap, entegrasyon testi ilk metodolojisinin son derece iyi bir örneğidir
- Birim testi sanatı, dot.net'teki örneklerle Birim testi konusunda, dot.net'teki örneklerle: D Birim testi arkasındaki ilkeler hakkında çok iyi bir kitap.
- TDD'den Robert C. Martin (Ücretsiz makaleler): Orada bağladığı ilk iki makaleyi de okuyun.