nodir
@nodir
Программист C#.Net

Библиотека Moq: Как вернуть список List в эмулируемом методе?

Здравствуйте!
Пытаюсь использовать библиотеку Moq для юнит-тестирования .
Вот такой вариант работает:

Application app = InitTestApplication(id);
var repositoryMock = new Mock<IRepository> ();
repositoryMock.Setup (x => x.Create (app)).Returns (app);
var repositoryMongo = repositoryMock.Object;
var repository = new ApplicationRepository (repositoryMongo);
var appResult = repository.Create (app);
Assert.AreEqual (app.Id, appResult.Id);


Когда пытаюсь вернуть в качестве результата список - получаю null.

repositoryMock.Setup (x => x.ExecuteQuery<Application> (predicate))
.Returns (() => new List<Application> { new Application (){
							Id = id,
							Title = "Application Title",
							SubTitle = "Application SubTitle",
							EmailOwner = "n****d@gmail.com",
							Copyright = "&copy; Copyright *** 2013.",
							IconSource = "2.png",
							IsTest = true,
							TestUid = TestUid,
							CreatedAt = DateTime.MinValue,
							UpdatedAt = DateTime.MinValue 
						}
					});


Что делаю не так?
Спасибо!
  • Вопрос задан
  • 2458 просмотров
Решения вопроса 1
@mayorovp
Проблема тут:
x.ExecuteQuery (predicate)

Что-то мне подсказывает, что Mock не может сравнить два предиката - вот и получается null. Используйте It.IsAny вместо predicate.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы