Gerçek proje bana ünite testleri yazmanın mümkün olmadığını gösterdi, daha sonra entegrasyon ve hatta ters yön yanlış bile oldu :-) Bu yüzden, genellikle entegrasyon testleriyle birlikte ünite testleri yazıyorum.
Niye ya? Her iki tür testi de nasıl gördüğümü yazmama izin verin:
Birim testleri - Vikipedi ve tüm bilgilerin yanı sıra birim testleri , tasarımınızı daraltmanıza , modelinizi ve ilişkilerinizi geliştirmenize yardımcı olur . Akış basittir: yeni proje / yeni bileşen yazmaya başladığınızda, çoğu zaman bir çeşit PoC yapıyorsunuzdur . İşiniz bittiğinde, her zaman uzun yöntemlere, uzun sınıflara, tutarlı olmayan yöntemlere ve sınıflara vb. Sahip olursunuz.
Birim testleri, yukarıda açıklanan sahte (başka bir bileşene bağımlılık olmadan) sınıflarını kullanarak gerçek birim testi yaptığınız zaman, test edilemez niteliktedir. Test edilemeyen kodun temel işareti, testlerin büyük bir kısmıdır; çünkü birçok bağımlılıkla (veya durumlarla) dalga geçmek zorunda kalırsınız.
Entegrasyon testleri - doğru ve çalışma testleri size, yeni bileşeninizin (veya bileşenlerinin) birlikte veya diğer bileşenlerle birlikte çalıştığını söylüyor - bu genel tanımdır. Ben entegrasyon testleri çoğunlukla tanımlamak için yardımcı olduğunu tespit ettik senin bileşeni nasıl kullanılacağını akış gelen tüketici tarafında .
API'nizin dışardan mantıklı gelmediğini söylediği için bu gerçekten önemlidir.
Peki, sonra birim testlerini ve entegrasyon testlerini yazdığımda ne oldu?
İyi sınıflar, net tasarım, iyi yapıcı, kısa ve uyumlu yöntemler, IoC hazırlığı vb. Aldım. Bireysel bir müşteri / tüketici sınıfını, örneğin entegrasyon veya GUI ekibinin geliştiricisine verdiğimde, API'mı unbian göründüğü için kullanamadı. , tuhaf. Kafası karışmıştı. Bu yüzden API'yi kendi bakış açısına göre tamir ettim ama aynı zamanda birçok testi tekrar yazmak zorunda kaldım, çünkü yöntemleri ve bazen de API'nin nasıl kullanılacağı akışını değiştirmek için zorlandım.
Peki, daha sonra entegrasyon testleri ve birim testleri yazdığımda ne oldu?
Kesin akışım var, iyi bir kullanılabilirlik Benim de sahip olduğum büyük sınıflar, tutarlı olmayan kodlar, günlük kaydı yok, uzun yöntemler. Spagetti kodu
Benim tavsiyem nedir?
Aşağıdaki akışı öğrendim:
- Kodunuzun temel iskeletini geliştirin
- Tüketici açısından mantıklı olup olmadığını söyleyen entegrasyon testlerini yazın. Temel kullanım durumu şimdilik yeterli. Test açıkça çalışmıyor.
- Her sınıf için birim testleri ile birlikte kod yazınız.
- Uyum sınavlarının geri kalanını / eksikliğini yazın. Bu sınamayı, kodunuzu nasıl geliştirdiğiniz # 3 içinde uygulamak daha iyi olur.
Ünite / entegrasyon testi hakkında küçük sunumlar yaptığımı unutmayın , iskeletin tanımlandığı slayt # 21'e bakınız.