Lambda参数在Moq中不起作用

时间:2012-04-26 07:35:17

标签: moq

我不断收到“不支持的表达式”异常。似乎lambda表达式(a => a.PP_EventID == 1)是问题所在。怎么解决这个问题?

pricepackPersistenceMock.Setup(pricepack => pricepack.Delete(a=>a.PP_EventID==1)).Verifiable();

1 个答案:

答案 0 :(得分:1)

您应该在It.Is<T>()方法中使用谓词。

pricepackPersistenceMock.Setup(pricepack => ricepack.Delete(It.Is<TypeOfa>(a=>a.PP_EventID==1)))
                        .Verifiable();

<强>更新

eventPersistenceMock.Setup(u => u.Single(It.IsAny<Func<tbl_SBAem_Event, bool>>()))
                    .Returns(eventlists.Where(a => a.EventMngID == currentevent.EventMngID).Single());
// you can directly return the value
//verifiable is not needed because you set the return value