我试图弄清楚为什么我在嘲笑我非常简单的界面时会遇到以下异常。
System.Reflection.TargetParameterCountException:参数计数不匹配。
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);
Run Code Online (Sandbox Code Playgroud)
接口:
public interface IZoneLocator<T>
{
Task<T> GetZoneInfo(double latitude, double longitude);
}
Run Code Online (Sandbox Code Playgroud)
的重载Returns期望a Func期望一个函数具有与模拟方法的输入相同的输入。这使您可以根据方法的输入来更改返回值。
因此,要解决此问题,请将您的设置更改为此:
zoneLocator
.Setup(zl => zl.GetZoneInfo(It.IsAny<double>(), It.IsAny<double>()))
.Returns((double latitude, double longitude) =>
Task.FromResult(/* TODO: create a timezone somehow*/));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
182 次 |
| 最近记录: |