2012-10-17 5 views
5

Mam typ i chcę utworzyć jego przykład z danymi testowymi.Czy istnieje sposób na utworzenie instancji typu z danymi testowymi?

wiem, że ramy jak NBuilder lub AutoFixture może tworzyć instancje typów, które są znane na czasie projektowania (<T>). Czy te frameworki są w stanie utworzyć instancję opartą na typie znanym tylko w czasie wykonywania (Type)?

Na koniec chcę zrobić coś takiego:

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

Odpowiedz

5

AutoFixture rzeczywiście wspierać. Ale, o ile mi wiadomo, nie ma na to żadnych metod zwiększania wygody.

Poniższy kod ogólna:

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

wyglądałoby to z rodzaju znanego tylko w czasie wykonywania:

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

który działa :) Czy to możliwe, aby zarejestrować implementację interfejsu dla AutoFixture kiedy AutoFixture próbuje utworzyć instancję dla właściwości, w której typem jest interfejs? – Rookian

+1

Tak, to możliwe. Zadaj to pytanie jako oddzielne pytanie. Odpowiem tam. –

+0

Spójrz na: http://stackoverflow.com/questions/12949417/register-an-implementation-of-interface-for-autofixture – Rookian