Erstellen Sie mit Reflection einen Ausdruck <Func <, >>
Ich benutze Moq, um Mocks eines Datensatzes zu erstellen.
Ich habe eine kleine Hilfsklasse erstellt, mit der ich anstelle einer Datenbank, mit der Unit-Tests zum Kinderspiel werden, einen In-Memory-Speicher einrichten kann. Auf diese Weise kann ich Elemente zu meinem Schein-Datensatz hinzufügen und daraus entfernen. Auf diese Weise kann ich meine Einfüge- und Lösch-Serviceaufrufe testen.
Während der Einrichtung des Modells habe ich eine Zeile, die wie folgt aussieht
this.Setup(i => i.AcademicCycles).Returns(mockStore.GetList<AcademicCycle>());
Mein Modell hat viele Eigenschaften, daher möchte ich diesen Einrichtungsschritt mit Reflektion durchführen. Ich habe es geschafft, dieReturns
ein teil des prozesses funktioniert über reflexion aber ich bleibe bei der lambda methode dranSetup
.
Setup
nimmt eine
Expression<Func<GoalsModelUnitOfWork, IQueryable<AcademicCycle>>>
das entspricht demi => i.AcademicCycles
und das möchte ich dynamisch gestalten. Unter Verwendung der Reflexion habe ich das folgende:
Der Name der Eigenschaft: "AcademicCycles"
Der TypIQueryable<AcademicCycle>
Der TypAcademicCycle
Ich habe auch die Instanz desi
in der Lambda-Aussage, die a istGoalsModelUnitOfWork