我的單元測驗在設定方法上失敗
var myMock = new Mock<IMyInterface<IImportLine>>();
myMock.Setup(m => m.StartExecution(It.IsAny<Func<Stream, IMyInterface<IImportLine>, bool>>(), null))
.Callback<Func<Stream, IMyInterface<IImportLine>, bool>>(action => action(null, new IMyInterface<IImportLine>()));
IMyInterface 如下所示
public interface IImportTransport<T> where T : IImportLine
{
void StartExecution(Func<Stream, ImportOperation<T>, bool> processor, string id = null);
}
錯誤訊息是System.ArgumentException : Invalid callback。設定帶引數的方法(Func3,String)不能呼叫帶引數的回呼(Func3)。
我們如何解決這個問題?
uj5u.com熱心網友回復:
您需要為與引數對應的回呼提供一個id引數(即使您知道它將為空)。
myMock.Setup(m => m.StartExecution(It.IsAny<Func<Stream, IImportTransport<IImportLine>, bool>>(), null))
.Callback<Func<Stream, IImportTransport<IImportLine>, bool>, string>(
(action, id) => action(null, new ImportOperation<IImportLine>()));
由于您沒有使用該引數,因此您可以根據需要使用丟棄。
myMock.Setup(m => m.StartExecution(It.IsAny<Func<Stream, IImportTransport<IImportLine>, bool>>(), null))
.Callback<Func<Stream, IImportTransport<IImportLine>, bool>, string>(
(action, _) => action(null, new ImportOperation<IImportLine>()));
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/488713.html
