Bir System.Type öğesinden başka bir şey kullanmadan AutoFixture'dan bir nesne oluşturmam gerekiyor. Ancak, sadece bir tür alır CreateAnonymous()
bir aşırı yük olduğu görünmüyor. Hepsi bir derleme zamanı jenerik T bekliyoruz. Bir System.Type'ı T'ye dönüştürmenin bir yolu var mı? kullanım detayları ileAutoFixture: Bir System.Type Oluşturma Adı Nasıl Oluşturulur
Düzenleme: Karmaşık haritalama senaryoları destekleyecek bileşenleri enjekte edilmesi için bir kancaya sahiptir AutoMapper, kullanıyorum
:
void ConstructServicesUsing(System.Func<Type,object> constructor)
Eğer imza görebileceğiniz gibi, müşteriler kayıt olabilirsiniz AutoMapper'ın, enjekte edilen bir hizmete (çoğunlukla ValueResolver uygulamaları) ihtiyaç duyduğu her an aldığı bir Func
.
Üretimde, bu yöntem bir bileşen almak için StructureMap kapsayıcımı çağırır. Ancak, eşleme kodumun birimini test ettiğimde, , saplama uygulamalarını sağlamalıdır, aksi takdirde AutoMapper bir istisna atar. AutoFixture + Moq'u otomobil konteyneri olarak kullandığım için, AF'yi tamamen hidrate edilmiş bir stub'a yükseltmek doğal görünmektedir, bu yüzden birim test koduna odaklanabiliyorum.
Kullanım senaryonuz hakkında daha fazla bilgi verir misiniz? Ne tür bir testte tür derleme zamanınızı bilmiyorsunuz, bu yüzden 'CreateAnonymous' yöntemini kullanamazsınız? – nemesv