我試圖用起訂量來測試,有一個「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