我有一个相对简单的模拟接口,我想为它设置Run
方法:
public interface IRunner
{
T Run<T>(ILogger log, ExecutionContext context, Func<FunctionContext, T> func);
}
当它被调用时,它看起来类似于:
myRunner.Run(myLog, myContext, async ctx => {
await _do(myContext, myLog, trxData);
});
我试着这样嘲笑它:
var mockRunner = new Mock<IRunner>();
mockRunner.Setup(
x => x.Run(
It.IsAny<ILogger>,
It.IsAny<ExecutionContext>,
It.IsAny<Func<FunctionContext,T>>
));
但是编译器对此并不满意:
方法
'IRunner.Run<T>(ILogger,ExecututionContext,Func<FunctionContext,T>)'
的类型参数不能从用法中推断出来.try 显式指定类型参数.
我完全被困在这一点上,并非常感谢任何 idea 或建议.