Ben aşağıdaki satırı fileInfo Fileinfo bir örneğidir.Net Fakes - Temel sınıf soyut olduğunda miras alınan bir mülkün nasıl ayrılacağı?
var fileFullName = fileInfo.FullName;
kapsayan bir birim test yazmak çalışıyorum.
FileInfo nesnesini kaydırmak için sahte kullanıyorum ancak, temel sınıftan miras alındığı için FullName özelliği için bir değer sağlayamıyorum.
kalıtsal değildir Adı özelliği için, ben sadece bunu yapabilirsiniz: Microsoft tarafından sağlanan
ShimFileInfo.AllInstances.NameGet = info => OriginalFullName;
cevabı bu durumda FileSystemInfo içinde, temel sınıf şim yaratmaktır. Ama bu denerseniz: FileSystemInfo oluşturulamaz soyut bir sınıftır ve bu nedenle shimmed edilemez çünkü
ShimFileSystemInfo.AllInstances.FullNameGet = info => OriginalFullName;
O, çalışmıyor.
Bu özel durumda, etrafından dolaşabilirim çünkü bu dizini test edilebilir hale getirmek için DirectoryName ve Name özelliklerini birleştirebilirim, ancak çılgınca görünüyor çünkü istediğim özelliği kullanamıyorum çünkü tabanı.
Bu problemin karşısına kim çıkmış ve çözmeyi başardınız mı?
Eh, ben yok Bu soruna rastlamak, ama Yansıma'yı kullanmaktan ne haber? –
Neden sadece bir test dosyası oluşturmuyorsunuz? Bir test dosyası yapacağı zaman sahte kullanmak istediğiniz belirli bir neden var mı? – gfish3000
Gerçekten test etmek istediğiniz şeyi düşünün, bir test dosyası kullanmıyorsanız, o zaman burada gerçekten test edilen nedir? Bir yöne gidiyormuş gibi görünüyorsun, test edeceğin tek şey senin sahte olduğunu. – Zache