Tür parametresi olarak anonim bir tür kullanılarak çağrılacak genel bir yöntem koymalıyız. Gerçek telefon türü parametre olarak nesne ile yapıldı test edilen yöntemde <T>() .Report eğerRhino Mocks: Anonim bir türü yakalamak için genel bir yöntem nasıl eklenir?
interface IProgressReporter
{
T Report<T>(T progressUpdater);
}
// Unit test arrange:
Func<object, object> returnArg = (x => x); // we wish to return the argument
_reporter.Stub(x => x.Report<object>(null).IgnoreArguments().Do(returnArg);
Bu çalışma, ancak gerçekte, yöntem, T, bir varlık olarak adlandırılır: düşünün anonim tip. Bu tür, test edilen yöntemin dışında mevcut değildir. Sonuç olarak, saplama asla çağrılmaz.
Tür parametresi belirtilmeksizin jenerik bir yöntem oluşturmak mümkün mü?
biraz OT ama adsız yazılan bir nesneyi nasıl callee kullanıyor? Böyle bir kullanım vakası görmedim. Sadece burada jenerik bir yöntemin seçimini gözden geçirmeye çalışın .. – Gishu
İyi soru;) Buradaki nokta, raporun argümanla herhangi bir şey yapması için değil, sadece geri dönmek için. LINQ ifadelerimizde zincirlemeyi kolaylaştırır. Bu yüzden, kesinlikle yeniden yazabiliriz, ama bir şeylerimiz olacağını düşünmüştük. –
dedi. Aynı siparişe ve özellik türüne sahip başka bir anonim tür oluşturursanız, aynı türde olmalıdırlar. Belki bu size yardımcı olabilir .. testinde benzer bir kukla türü oluşturmak ve tür almak için üzerine bir GetType() yapmak ... ama daha önce söylediğim gibi .. karmaşık/zeki görünüyor. Basit tercih edilir :) – Gishu