我试图用起订量来测试,有一个“PARAMS”列表中的方法被调用的方法调用,但由于某种原因,这是失败的。该方法的签名是这样的:起订量 - 验证具有PARAMS值
void AttachAsModifiedToOrders(IOrder order, params
Expression<Func<IOrder, object>>[] modifiedProperties);
然后在模拟设置我已经做了这样的事情做一个简单的从嘲笑集“删除/插入”:
MockEntities.Setup(n => n.AttachAsModifiedToOrders(It.IsAny<DataAccess.Order>()))
.Callback<IOrder, Expression<Func<IOrder, object>>[]>((order, expr) =>
{ Orders.Remove(Orders.Where(o => o.Id== order.Id).First());
Orders.Add((DataAccess.Order)order); });
最后,验证:
MockEntities.Verify(x => x.AttachAsModifiedToOrders(It.IsAny<Order>(),
It.IsAny<Expression<Func<IOrder, object>>>()), Times.Exactly(1));
我检查和代码执行确定,该方法被调用(嘲笑的一个),但验证失败。我错过了什么?还是仅仅是这个“参数”调用不被Moq支持?
什么版本的Moq? – 2011-03-09 14:46:51
大会说4.0.0 – 2011-03-09 14:53:33
啊,好的。我看到一个大约3和3.1的bug。 – 2011-03-09 14:55:01