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

Antworten auf die Frage(3)

Ihre Antwort auf die Frage