设置 collection 共 objects 将添加到最小起订量
Setup collection of objects to be added in Moq
我想跟踪单元测试中添加的项目。我已经像这样设置了 collection:
var items = new List<IItem>();
var mock = new Mock<IItem>();
mockCollection.Setup(x => x.AddNew()).Returns(() =>
{
mock.SetupAllProperties();
return mock.Object;
}).Callback(() =>
{
items.Add(mock.Object);
});
这有效并且新项目被添加到列表中,但是,这是有问题的,因为每当调用 AddNew() 方法时,先前 "mock" 的所有属性object 被替换。
原因是AddNew方法没有参数,但是你给回调添加了一个参数(那个参数从哪里来???)。相反,请尝试以下
Mock<IItem> mock=null;
var items = new List<IItem>();
mockCollection.Setup(x => x.AddNew()).Returns(() =>
{
mock = new Mock<IItem>();
mockShipment.SetupAllProperties();
return mock.Object;
}).Callback(()=>
{
items.Add(mock.Object);
});
我想跟踪单元测试中添加的项目。我已经像这样设置了 collection:
var items = new List<IItem>();
var mock = new Mock<IItem>();
mockCollection.Setup(x => x.AddNew()).Returns(() =>
{
mock.SetupAllProperties();
return mock.Object;
}).Callback(() =>
{
items.Add(mock.Object);
});
这有效并且新项目被添加到列表中,但是,这是有问题的,因为每当调用 AddNew() 方法时,先前 "mock" 的所有属性object 被替换。
原因是AddNew方法没有参数,但是你给回调添加了一个参数(那个参数从哪里来???)。相反,请尝试以下
Mock<IItem> mock=null;
var items = new List<IItem>();
mockCollection.Setup(x => x.AddNew()).Returns(() =>
{
mock = new Mock<IItem>();
mockShipment.SetupAllProperties();
return mock.Object;
}).Callback(()=>
{
items.Add(mock.Object);
});