最小起订量 - 参数不匹配

Moq - Parameter mismatch

我想弄清楚为什么在模拟我非常简单的界面时出现以下异常。

System.Reflection.TargetParameterCountException: Parameter count mismatch.

    var zoneLocator = new Mock<IZoneLocator<ZoneInfo>>();
    zoneLocator
        .Setup(zl => zl.GetZoneInfo(
            It.IsAny<double>(), It.IsAny<double>()))
        .Returns((ZoneInfo zoneInfo) =>
            Task.FromResult(zoneInfo));

    var z = zoneLocator.Object.GetZoneInfo(1, 1);

接口:

public interface IZoneLocator<T>
{
    Task<T> GetZoneInfo(double latitude, double longitude);
}

期望 FuncReturns 的重载期望一个函数具有与模拟方法的输入相同的输入。这允许您根据方法的输入更改 return 值。

因此,要解决此问题,请将您的设置更改为:

zoneLocator
    .Setup(zl => zl.GetZoneInfo(It.IsAny<double>(), It.IsAny<double>()))
    .Returns((double latitude, double longitude) =>
        Task.FromResult(/* TODO: create a timezone somehow*/));