我的界面上有一个方法,如下所示:
T GetSingle(Expression<Func<T, bool>> criteria);
我试图模拟这样的设置(我意识到这不起作用):
_mockUserRepository = new Mock<IRepository<User>>();
_mockUserRepository.Setup(c => c.GetSingle(x => x.EmailAddress == "a@b.com"))
.Returns(new User{EmailAddress = "a@b.com"});
我意识到我将错误的参数传递给设置。
阅读此答案后,我可以通过传入表达式来使其工作,如下所示:
_mockUserRepository.Setup(c => c.GetSingle(It.IsAny<Expression<Func<User, bool>>>())
.Returns(new User{EmailAddress = "a@b.com"});
但是,这意味着如果我GetSingle
使用任何表达式调用该方法,将返回相同的结果。
有没有办法在设置中指定使用什么表达式?