ich eine Methode auf meine Schnittstelle haben, die wie folgt aussieht:Moq - Linq Ausdruck in Repository - Geben Ausdruck im Setup
T GetSingle(Expression<Func<T, bool>> criteria);
Ich versuche, das Setup etwas zu verspotten (Ich weiß, das ist nicht funktioniert):
_mockUserRepository = new Mock<IRepository<User>>();
_mockUserRepository.Setup(c => c.GetSingle(x => x.EmailAddress == "[email protected]"))
.Returns(new User{EmailAddress = "[email protected]"});
Ich realisiere, dass ich den falschen Parameter zum Setup übergebe. zurück
_mockUserRepository.Setup(c => c.GetSingle(It.IsAny<Expression<Func<User, bool>>>())
.Returns(new User{EmailAddress = "[email protected]"});
Das bedeutet aber, wenn ich die GetSingle
Methode mit jedem Ausdruck nennen, das gleiche Ergebnis:
Nach this answer Lese Ich kann es, indem man in der Expression, wie diese erhalten arbeiten.
Gibt es eine Möglichkeit, im Setup festzulegen, welcher Ausdruck verwendet werden soll?
Ich sehe nicht, wie dies die Frage beantwortet. Der Fragesteller gab ausdrücklich an, dass er vermeiden wollte, einen generischen Ausdruck zu verwenden. –
Mein Gedächtnis ist ein bisschen vage, aber die ursprüngliche Frage war, über die Methode zu spotten, die Ausdruck akzeptiert. Ich denke Alex hat die Frage aktualisiert, da er je nach gegebenem Ausdruck unterschiedliche Ergebnisse zurückgeben möchte. – Andy
Eine wahrscheinliche Geschichte;) –