Estoy tratando de probar con Moq que se llama a un método que tiene una lista de "params", pero por alguna razón esto está fallando. La firma del método es algo como esto:Moq - Verifique la llamada al método que tiene un valor de parámetro
void AttachAsModifiedToOrders(IOrder order, params
Expression<Func<IOrder, object>>[] modifiedProperties);
Luego, en la configuración Mock que he hecho algo como esto para hacer un simple "eliminar/insertar" de la colección burlado:
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); });
Por último, la verificación:
MockEntities.Verify(x => x.AttachAsModifiedToOrders(It.IsAny<Order>(),
It.IsAny<Expression<Func<IOrder, object>>>()), Times.Exactly(1));
he comprobado, y el código se ejecuta bien y se llama al método (el burlaban de uno), pero la verificación está fallando. ¿Me estoy perdiendo de algo? ¿O simplemente es que Moq no admite esta llamada "params"?
¿Qué versión de Moq? –
el conjunto dice 4.0.0 –
Ah, vale. Vi una publicación de error anterior acerca de 3 y 3.1. –