2
在这一点上,我已经无法在树林中迷失了,我一直在反复地做出同样的改变,认为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;
}
但是,我尝试做一个类似的列表只是不工作。具体来说,安装程序中的回报正在嘲笑我。
我在这一点的是:
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);
}
缺少什么我在这里?我以前从未嘲笑过这样的回购,所以我可能违反了一些基本原则,如果有的话,请让我知道。
谢谢。
今天你是我的英雄,并得到一顶帽子。做得好。我也改变了返回类型,只是模仿>(no List <>)就是这样。干杯! –
BryanGrimes
啊,当然也是,不用担心 – aqwert