В этот момент я больше не нахожусь в лесу, я продолжаю вносить одни и те же изменения снова и снова с мыслью, что intellisense просто что-то скрывает от меня.
Я пытаюсь создать насмешливыйрепо для тестирования добавления (и запроса) отдельных типов и списков.один репо работает как:
public Mock<IBaseRepository<DNS_Entity>> RepositoryFakeObject()
{
var _dns = new List<DNS_Entity>();
var mock = new Mock<IBaseRepository<DNS_Entity>>();
mock.Setup(x => x.Add(It.IsAny<DNS_Entity>()))
.Callback((DNS_Entity e) => _dns.Add(e));
mock.Setup(x => x.SelectALL()).Returns(_dns.AsQueryable());
return mock;
}
Однако мои попытки сделать что-то подобное для списка просто не работают.В частности, Returns in the Setup смеется надо мной.
На данный момент у меня есть следующее:
public Mock<IBaseRepository<List<DNS_Entity>>> RepositoryFakeList() // Mock<IBaseRepository<List<DNS_Entity>>>
{
var _dns = new List<DNS_Entity>();
var mock = new Mock<IBaseRepository<List<DNS_Entity>>>();
mock.Setup(x => x.Add(It.IsAny<List<DNS_Entity>>()))
.Callback((List<DNS_Entity> le) => _dns.Add(le.Select(e => e) as DNS_Entity));
// mock.Setup(x => x.SelectALL()).Returns((IQueryable<List<DNS_Entity>>) (_dns));
mock.Setup(x => x.SelectALL()).Returns(_dns.AsQueryable());
return mock;
}
В конечном счете, я хотел бы сделать что-то с тестом добавления, например:
[Test]
public void AddNewList()
{
var mock = RepositoryFakeList();
var lst = new List<DNS_Entity>
{
new DNS_Entity {FirstName = "added", LastName = "From Test"},
new DNS_Entity {FirstName = "added2", LastName = "From Test2"}
};
mock.Object.Add(lst);
Assert.IsTrue(mock.Object.SelectALL().Count() == 2);
}
Что мне здесь не хватает?Я никогда не издевался над репо, как это раньше, поэтому я, вероятно, нарушил некоторые основные принципы, и если да, пожалуйста, дайте мне знать.
Спасибо.