![](/img/trans.png)
[英]How to AutoFixture.CreateAnonymous<>() on class with internal ctor
[英]AutoFixture: how to CreateAnonymous from a System.Type
我只需要使用System.Type從AutoFixture創建一個對象。 但是,似乎沒有CreateAnonymous()
的重載只是一個類型。 他們都期望編譯時通用T.有沒有辦法將System.Type轉換為T?
編輯使用細節:
我正在使用AutoMapper,它有一個用於注入組件的鈎子,以支持復雜的映射場景:
void ConstructServicesUsing(System.Func<Type,object> constructor)
從簽名中可以看出,客戶端可以注冊一個Func
,AutoMapper會在需要注入服務時調用它(主要是ValueResolver實現)。
在生成版本中,此方法調用我的StructureMap容器來檢索組件。 但是,在單元測試我的映射代碼時,我必須提供存根實現,否則AutoMapper會拋出異常。 由於我使用AutoFixture + Moq作為我的自動鎖定容器,因此讓AF新建一個完全水合的存根似乎很自然,所以我可以集中精力編寫單元測試代碼。
這是可能的 ,但故意隱藏,因為你應該很少需要這樣做:
var specimen = new SpecimenContext(fixture).Resolve(type);
AutoFixture中有大量的可擴展點,通常比弱類型的Create方法提供更好的替代方案。 你想達到什么目的?
您必須使用反射來創建正確的MethodInfo
並調用它。 請參閱以下答案: 如何使用給定的Type對象調用泛型方法?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.