"Birim-soyut bir sınıf testi için nasıl?" sorusu çok sık çıkageldi. Sen genişletmek, sonra soyut yöntemler taslakları ile değiştirin ve yöntemi sadece beton parçası sınayın? Ya da bir soyut birim testi geliştirmek mi?
Bu muhtemelen yanlış soru için soyut sınıflar gelince sormak olduğunu düşünüyorum. Aslında biz sorunu tamamen kaçınmak için iyi bir yol olduğunu düşünüyorum. Ne zaman sen iyice düşünüp taşınmak bu soyut temel sınıf orada gerçekten bu yaklaşmanın iki standart yöntem vardır:
Soyut nesneyi uzmanlaşmak gerektiğinde ilkidir. Bu durumda neredeyse kesin istemcilerin oluşturduğunuz Özet sınıf bir temel arayüz üzerinden kullanmanıza gerek bulabilirsiniz.
İkinci örnek deneyin ve çoğaltma kısmak için soyut sınıf bina konum. Bu durumda hemen bir arabirimi üzerinden eriştiklerinde istemciler aslında sınıf beton sürümlere erişmek görürsünüz.
Yazılım test geliştirme yaklaşımı değişikliği
O zaman belgili tanımlık ilk yöntem yukarıda alırsan tam olarak tanımlanmış bir arabirim zaten olacak. Bu işlemi, yeni türetilmiş sınıfları tarafından uygulanan sınıfları içinde sanal yöntemlerin geçer. Neden gerçek bir arayüz arayüz yapmak? Sizin için somut bir soyut sınıf takas. Daha sonra yeni arabirimini oluşturucudan fotoğrafını. Tüm türetilmiş sınıflar daha sonra gerçek arabirimini kullanabilir.
Bu soyut sınıf test kolaylaştırır. Sadece bir sahte arabirimi kullanmak ve ne şimdi gerçek bir arabirimdir kullanarak herhangi bir ek uygulamalar çalışır.
İkinci yöntemi için bu zaten bir yardımcı sınıf olarak çalışıyor. Bu soyut sınıf işlevini incelemek ve deneyin ve çalıştığınız nesnelere çalışması. Orada hala malzeme bu sınıfları, bittiği zaman - bulursanız kurucusunda bir yardımcı sınıf yapmak (temel sınıf take away unutmayın) ve bunu somut bir uygulamasıdır. Bu çok soyut bir sınav kolaydır.
Yöntem 1 ve 2 birleştirmek mümkündür ve bu yaklaşımı için ikinci yöntemi kullanın ve sonra sadece miras ağaç almak ve bir strateji desen dönüştürmek için bu yaklaşım en iyi yolu bulduk.
Birim test Soyut sınıflar için en iyi yolu sadece sınıf işlemek için daha kolay bir şey azaltmak etmektir.