у меня есть это в моем тестовом сценарии:установка Moq не возвращает значение в то время как сказал
var dbConnection = new Mock<IDbConnection>();
dbConnection.Setup(x => x.SearchFor<User>("users", y => y.Password =="12345"
&& y.Username == "tester")).Returns(new List<User>{
new User{
Username = "tester",
Password = "12345"
}}.AsQueryable());
var users = new Users.Users(dbConnection.Object);
var user = users.Get("tester", "12345");
При взгляде на Получ:
public User Get(string username, string password){
var total = _dbConnection.SearchFor<User>("users", y =>
y.Password == password &&
y.Username == username).Single();
return total;
}
Он должен работать в соответствии большинство образцов I найти в Интернете, но он всегда дает мне:
System.InvalidOperationException: Sequence contains no elements
Когда я изменить Получ к этому:
public User Get(string username, string password){
var total = _dbConnection.SearchFor<User>("users", y =>
y.Password == "12345" &&
y.Username == "tester").Single();
return total;
}
Это magicaly работает, но метод get находится в бизнес-слое и, как мы все знаем ..., чтобы установить имя пользователя и пароль hardcoded, никогда не бывает хорошим.
Вопрос: Как я могу правильно настроить настройку для moq? Что я делаю не так?