9
表達我有我的接口上的一個方法,看起來像:起訂量 - 在倉庫LINQ表達式 - 指定安裝
T GetSingle(Expression<Func<T, bool>> criteria);
我試圖嘲弄的設置是這樣的(我知道這是不是工作):
_mockUserRepository = new Mock<IRepository<User>>();
_mockUserRepository.Setup(c => c.GetSingle(x => x.EmailAddress == "[email protected]"))
.Returns(new User{EmailAddress = "[email protected]"});
我意識到我傳遞了錯誤的參數設置。
閱讀this answer後,我可以得到它通過傳遞表達式,像這樣的工作:
_mockUserRepository.Setup(c => c.GetSingle(It.IsAny<Expression<Func<User, bool>>>())
.Returns(new User{EmailAddress = "[email protected]"});
但是,這意味着如果我稱之爲GetSingle
方法與任何表達式,則返回相同的結果。
有沒有在設置中指定要使用哪個表達式的方法?
我不明白這是如何回答這個問題的。提問者明確表示,他希望避免使用通用表達。 – 2014-05-22 17:10:16
我的記憶有點模糊,但最初的問題是嘲笑接受表達的方法。我想Alex更新了這個問題,因爲他想根據給定的表達式返回不同的結果。 – Andy 2014-05-23 14:14:43
一個可能的故事;) – 2014-05-24 00:24:11