最小起订量 - 参数不匹配
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);
}
期望 Func
的 Returns
的重载期望一个函数具有与模拟方法的输入相同的输入。这允许您根据方法的输入更改 return 值。
因此,要解决此问题,请将您的设置更改为:
zoneLocator
.Setup(zl => zl.GetZoneInfo(It.IsAny<double>(), It.IsAny<double>()))
.Returns((double latitude, double longitude) =>
Task.FromResult(/* TODO: create a timezone somehow*/));
我想弄清楚为什么在模拟我非常简单的界面时出现以下异常。
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);
}
期望 Func
的 Returns
的重载期望一个函数具有与模拟方法的输入相同的输入。这允许您根据方法的输入更改 return 值。
因此,要解决此问题,请将您的设置更改为:
zoneLocator
.Setup(zl => zl.GetZoneInfo(It.IsAny<double>(), It.IsAny<double>()))
.Returns((double latitude, double longitude) =>
Task.FromResult(/* TODO: create a timezone somehow*/));