0
起訂量函數調用,我有以下接口,用於DI和IOC web服務客戶與表達
public interface IWcfServiceClientProvider <TContract>: IDisposable where TContract: class
{
TResult Execute<TResult>(Expression<Func<TContract, TResult>> expression);
TResult Execute<TResult>(Expression<Func<TContract, TResult>> expression, bool closeConnection = true);
void Execute(Expression<Action<TContract>> expression);
void Execute(Expression<Action<TContract>> expression, bool closeConnection = true);
}
在我的測試類,我有以下:
List<BaseLookup> myList = new List<BaseLookup> {
new BaseLookup { Id =1, Code = "1001"},
new BaseLookup { Id =2, Code = "1002"},
new BaseLookup { Id =3, Code = "1003"}};
在我的測試方法
Mock<IWcfServiceClientProvider<ILookupService>> lookupServiceClinetProvider = new Mock<IWcfServiceClientProvider<ILookupService>>();
var controller = new ElectorSearchController(lookupServiceClinetProvider.Object);
lookupServiceClinetProvider.Setup(mock => mock.Execute(lookup => lookup.GetList(10))).Returns(myList).Verifiable();
var list = controller.testMethod();
lookupServiceClinetProvider.VerifyAll();
當GetList
的參數設置爲10時,列表將僅具有值,即GetList(10)
不GetList(i)
其中I = 10個
以下工作
lookupServiceClinetProvider.Setup(mock => mock.Execute(It.IsAny<Expression<Func<ILookupService, List<BaseLookup>>>>(), true)).Returns((List<BaseLookup>)myList).Verifiable();
但我想嘲笑呼籲GetList
而不是任何調用執行。如果這樣的作品,那麼我可以在Return
方法
有人知道我失蹤了嗎?謝謝 –
我也試過嘲笑ILookupService。但是執行不匹配。我在http://stackoverflow.com/questions/16124263/moq-linq-expression-in-repository-specify-expression-in-setup嘗試解決方案仍然無法正常工作。 –