c# - 如何使用表达式设置模拟?
问题描述
我应该如何在这里设置表达式?
[TestMethod]
public void SaveLocation()
{
//Arrange
var dbMock = new Mock<BandItEntities>();
dbMock.Setup(x => x.Users.SingleOrDefault(It.IsAny<Expression<Func<User, bool>>>)).Returns(new User());
var userAccess = new UsersAccess(dbMock.Object);
//Act
userAccess.SaveLocation(It.IsAny<User>());
//Assert
dbMock.Verify(x => x.SaveChanges(), Times.Once);
}
正是这一行代码
dbMock.Setup(x => x.Users.SingleOrDefault(It.IsAny<Expression<Func<User, bool>>>)).Returns(new User());
我在这里为这个方法创建了一个测试:
public void SaveLocation(User user)
{
var validUser = db.Users.SingleOrDefault(u => u.ID == user.ID);
validUser.Latitude = user.Latitude;
validUser.Longitude = user.Longitude;
db.SaveChanges();
}
现在我得到这个错误:
错误 CS1503 参数 2:无法从“方法组”转换为“表达式>”
解决方案
推荐阅读
- php - Symfony 4 会话服务中
- python-3.x - 使用 datetime strftime 方法的析构函数中的奇怪异常
- java - 如何在 Spring / Spring boot app 的 RestTemplate 中获取当前设置的代理设置
- java - 表数微调器
- r - 查找零的范围和位置数
- javascript - How to handle state on array of checkboxes?
- java - Whitelabel 错误页面而不是特定的 jsp 页面
- java - .subscribe 与 .concatmap 的多线程 RxJava
- sql - 分层数据副本
- jquery - 实现:错误类型错误:$(...).datepicker 不是函数