Ich muss ein Objekt von AutoFixture nur mit einem System.Type erstellen. Es scheint jedoch keine Überlastung von CreateAnonymous()
zu sein, die einfach einen Typ annimmt. Sie alle erwarten eine generische T für die Kompilierung. Gibt es eine Möglichkeit, einen System.Type in T umzuwandeln?AutoFixture: wie CreateAnonymous von einem System.Type
Bearbeiten mit Nutzungsdetails:
Ich verwende AutoMapper, die einen Haken Komponente zum Injizieren komplexe Mapping-Szenarien zu unterstützen:
void ConstructServicesUsing(System.Func<Type,object> constructor)
Wie Sie aus der Signatur sehen, können Kunden registrieren eine Func
, die AutoMapper immer dann aufruft, wenn sie einen injizierten Dienst benötigt (meistens ValueResolver-Implementierungen).
In Produktions-Builds ruft diese Methode in meinem StructureMap-Container auf, um eine Komponente abzurufen. Wenn Sie jedoch Unit-Testing für meinen Mapping-Code verwenden, muss Stub-Implementierungen bereitstellen, sonst löst AutoMapper eine Ausnahme aus. Da ich AutoFixture + Moq als Autofokus-Behälter benutze, scheint es normal zu sein, dass AF einen vollständig hydratisierten Stub neu aufbaut, so dass ich mich auf den Testcode der Testeinheit konzentrieren kann.
Können Sie mehr über Ihr Nutzungsszenario erfahren? In welcher Art von Test kennen Sie Ihre Kompilierzeit nicht, also können Sie die 'CreateAnonymous' Methode nicht verwenden? – nemesv