2012-10-17 9 views
5

Ho un tipo e voglio creare un'istanza di esso con i dati di test.C'è un modo di creare un'istanza di un tipo con i dati di test?

So che i quadri come NBuilder o AutoFixture può creare istanze di tipi che sono noti in fase di progettazione (<T>). Quelle strutture sono in grado di creare un'istanza basata su un tipo noto solo in fase di esecuzione (Type)?

Al fine voglio fare qualcosa di simile:

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

risposta

5

AutoFixture effettivamente supporta questa. Ma, per quanto ne so, non ci sono metodi di estensione della convenienza per farlo.

Il codice generico seguente:

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

sarebbe simile a questa con un tipo conosciuto solo in fase di esecuzione:

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

che funziona :) E 'possibile registrare un'implementazione di un'interfaccia per AutoFixture quando AutoFixture tenta di creare un'istanza per una proprietà in cui il tipo è un'interfaccia? – Rookian

+1

Sì, è possibile. Si prega di chiedere come una domanda separata. Risponderò lì. –

+0

Dai un'occhiata a: http://stackoverflow.com/questions/12949417/register-an-implementation-of-an-interface-for-autofixture – Rookian

Problemi correlati