2012-10-17 190 views
5

我有一個類型,並希望用測試數據創建它的一個實例。有沒有辦法用測試數據創建一個類型的實例?

我知道框架,如NBuilderAutoFixture可以創建的那些設計時間(<T>)已知類型的實例。這些框架是否能夠基於僅在運行時已知的類型創建實例(Type)?

在我想要做這樣的事情結束:

var value = Builder.Create(type); 
var constant = Expression.Constant(value, type); 

回答

5

AutoFixture確實支持這一點。但據我所知,沒有方便的擴展方法來做到這一點。

下面的通用代碼:

var value = fixture.CreateAnonymous<MyType>(); 

應該是這樣的,只有在運行時已知的類型:

var context = new SpecimenContext(fixture.Compose()); 
var value = context.Resolve(new SeededRequest(typeof(MyType), null)) 
+0

這工作:)是否有可能註冊AutoFixture接口的實現當AutoFixture嘗試爲類型爲接口的屬性創建實例時? – Rookian

+1

是的,那是可能的。請問這是一個單獨的問題。我會在那裏回答。 –

+0

看看:http://stackoverflow.com/questions/12949417/register-an-implementation-of-an-interface-for-autofixture – Rookian

相關問題