【发布时间】:2017-06-29 21:34:21
【问题描述】:
实际的接口签名是这样的
Task<GeneralResponseType> UpdateAsync(ICustomerRequest<IEnumerable<CustomerPreference>> request, CancellationToken cancellationToken, ILoggingContext loggingContext = null);
测试用例:
ICustomerRequest<IEnumerable<CustomerPreference>> t = null;
CancellationToken t1 = new CancellationToken();
LoggingContext t2 = null;
this.customerPreferenceRepositoryMock.Setup(x => x.UpdateAsync(
It.IsAny<ICustomerRequest<IEnumerable<CustomerPreference>>>(),
It.IsAny<CancellationToken>(),
It.IsAny<LoggingContext>()))
.Callback<ICustomerRequest<IEnumerable<CustomerPreference>>,CancellationToken, LoggingContext>((a, b, c) => { t = a ; t1 =b;t2= c; });
设置在测试用例中抛出异常,如下所示
无效的回调。使用参数设置方法 (ICustomerRequest
1,CancellationToken,ILoggingContext) cannot invoke callback with parameters (ICustomerRequest1,CancellationToken,LoggingContext)。
我做错了什么?
我已验证Moq: Invalid callback. Setup on method with parameters cannot invoke callback with parameters
但我没有看到任何帮助。
【问题讨论】:
-
应该是
ILoggingContext而不是LoggingContext
标签: c# unit-testing moq