sorunuzu yönleri çok var takdir bir çok sınırlı bir şekilde
bu konuda düşünce olmalıdır, ama bence için - muhtemelen projenizde birim testleri gerekmez. projenize iş mantığı çok gerektiğinde
Birim testleri gerçekten parlıyor. Bu durumda, muhtemelen uygulamanızı çoklu katmanlara (örneğin, 3 katmanlı mimari) ayırmak, diğerlerinin yanı sıra, iş mantığı katmanı için bir miktar doğal yalıtım eklemek ve ünite testlerinin güvenlik ağı ile örtmek isteyebilirsiniz.
Bu güvenlik ağı, iş katmanının refraktörü sırasında eşinizi kapsar ve bu, ünite testlerinden (TDD'nin bazı güzel ekstra yan etkiler sunabilir) önemli olanlardan biridir.
Ancak, mal olabilir değil tüm tek boynuzlu ve gökkuşağı ve birim testi, ve bazen de çok maliyetli. İyi birim testleri izole edilir (yani küçük kod parçaları ile anlaşma). Bu, sınıflarınızı test altına almak için soyutlama katmanları eklemeniz gerektiği anlamına gelir. Bu, sisteminizde veya olumsuz durumunuzda olumlu etkilere neden olabilir. Katmanlama, karmaşıklığı artan maliyetle sisteminizi daha esnek hale getirir.
Belirtilene - birim testlerinin değeri, projenizde sunacağınız soyut iş mantığı miktarıyla orantılıdır. Bu şekilde de düşünebilirsiniz - eğer mimarinize soyut katmanlar eklemenin aşırı zorluğu varsa - birim testleri eklemeyin - sadece işleri daha karmaşık hale getirecek (mimari ve bilge). açıklamanızda dayanarak
- tipik uygulama bazı harici sunucu tarafı için oldukça fazla sunum katmanı olma eğilimindedir. Bu, android telefon hakkında bilgi sunma ve kullanıcı eylemlerini ana iş mantığının (kontrol) yapıldığı sunucu tarafına komutlar olarak dönüştürmek dışında pek bir şey yapmaz.
Bu yaklaşımla yazacağınız kodun büyük bir kısmı "bunun nasıl görüntüleneceğini" veya "nasıl ve bu durumda sunucuyu nasıl işaretleyeceğini" gösterir. Bu kod tür ağır platforma bağlı ve bu testin altında koymak istiyoruz eğer çok ve Android özgü kod \ davranışı çok alay gerekecek anlamına besbelli.
Şimdi, Android biraz spesifik bir platformdur. Hem performansın optimize edilmiş hem de geliştiricilerin hızlı bir şekilde uygulamaları başlatmasına ve üretmesine izin verecek şekilde tasarlanmıştır. Genellikle bu kullanılmasını \ uzatmak ve genel olarak bu kodu yazma, ama gerçek bir cehennem haline gelebilir bu sınıfları alay hızlandırır "swiss-bıçak" sınıfların bir miktar anlamına gelmektedir. Platformun kaputun altında nasıl çalıştığını anlamak zorunda olduğunuzu söylememelisiniz. Başka bir deyişle, bu testi yapmanın tepkisi yüksek olacak.
Sunu katmanlarını sınamada yanlış olan başka bir şey, iş katmanlarından çok daha dinamik olarak değişme eğiliminde olmalarıdır. Ve elbette, bu, daha fazla yükü ekleyen testleri tekrar gözden geçirmek zorunda kalacağınız anlamına gelir.
olsa çeşitli kamu/yardımcı sınıflar hakkında bir şey söylemek zorundayım. Bu sınıflar sunum katmanına ait olsa ve Android koduna bağlı olsalar da, bazı önemli olmayan mantıksal ve'u yapıp yapmadıkları bile olsa, bunlar için birim testleri yapmak ve yazmak çok kolaydır, aslında bunu yapmak iyi bir fikir olabilir. Ancak, böyle bir kodunuz varsa - bu, mimarinizi/katmanlarınızı iyi tasarlamadığınızı ve ne yaptığınızı yeniden düşünmeniz gerektiğini gösteren bir işaret olabilir. Sonunda
öncelikle bu sorulara cevap vermek zorunda soruna cevap vermek gerekirse:
o uygulamanıza platformdan ayrılır soyut katman eklemek için Aşırı tasarım olacak (o kitabın durumda gibi görünüyor) ? Evet ise - birim testleri kullanmayın - sadece sizi yavaşlatırlar. Eğer yoksa - bunları kullanın.
Çok fazla refactor yapacak mısın? Çok sayıda kod içeren ve dolayısıyla bakım gerektiren büyük bir proje varsa muhtemelen büyük olasılıkla, bu nedenle katmanlama ve birim testlerine yatırım yapabilirsiniz (ancak, bir bakışta, sizin durumunuz bu değildir). Bu sizin durumunuz değilse - ünite testleri ile uğraşmayın ve hızlı gidin.
Birim testlerinizi yazmak için çok fazla platformla uğraşmanız mı gerekiyor? Evetse (sizin durumunuz gibi) - ünite testleri yazmayın - çabaya değmezler.
Bu yardımcı olacaktır umarım.