Varolan kodlarla çalışıyorum, buna eklemeye çalışıyorum ve bunun için birim testlerini artırıyorum. Ancak, kodun test edilebilir hale getirilmesiyle ilgili bazı sorunlara yol açıyor.Test Edilebilirlik için Tasarımcılar
Orjinal Oluşturucu:
public Info() throws Exception
{
_ServiceProperties = new ServiceProperties();
_SshProperties = new SshProperties();
}
bu kötü olduğunun farkında ve açıkçası test edilebilir değilim. Bir cemiyet ortamında, bu sınıf kendini inşa etmek için gerekli özellikleri bulamadığı için her seferinde yaratamaz. Şimdi, bu sınıfın bir parametre olarak 'yeni' ile başlayan herhangi bir şeyi hareket ettirmenin basit değişimi ile çok daha fazla test edilebilir olduğunun farkındayım.
Yeni Oluşturucu:
Yani ile bitirmek verir
public Info(ServiceProperties srvProps, SshProperties sshProps) throws Exception
{
_ServiceProperties = srvProps;
_SshProperties = sshProps;
}
beni düzgün birim test bu Bilgi sınıfını için. Sorun olsa, şimdi bütün bu işler başka sınıfa itilir geçerli:
Diğer Bazı Class' Yöntem:
public void useInfo() throws Exception
{
ServiceProperties srvProps = new ServiceProperties();
SshProperties sshProps = new SshProperties();
Info info = new Info(srvProprs, sshProprs);
doStuffWithInfo(info);
}
Şimdi bu yöntem test edilebilir değildir. Yaptığım tek şey, bu Mülkiyet nesnelerinin yapılarının meydana geldiği yerlere itmek ve başka bir yerde kodun aslında “yeni” olarak adlandırılmak zorunda kaldığı takılıp kalmasıdır.
İşte benim için ova: Bu "yeni" çağrıları başka bir yere basmakla ilgili bu olaylar zincirinin nasıl kırılacağını anlayamıyorum. Neyi kaçırıyorum?
Ayrıca bir göz alabilir bizim yay ders materyali http://www.trainologic.org/courses/info/2 –