c# - .Net 中的最小起订量,带 2 个参数
问题描述
我正在尝试创建一个 Mock 来运行我的测试,但我收到以下错误,“无效的回调。具有 2 个参数的方法上的设置无法使用不同数量的参数 (1) 调用回调”这是我的设置函数
private void Setup()
{
this.dataFactoryMock = new Mock<CommonDataFactory>();
var commonDataFactory = new CommonDataFactory();
this.dataFactoryMock.Setup(factory => factory.Factory(It.IsAny<DateTime>(), It.IsAny<DateTime>())).Returns<DateTime>(date => commonDataFactory.Factory(date, date));
}
public class CommonDataFactory
{
public virtual CommonData Factory(DateTime adjustedAnalysisDate, DateTime analysisDate)
{
var downloadCommonData = CommonData.DownloadCommonData(adjustedAnalysisDate, analysisDate);
this.cache.Add(key, downloadCommonData, new CacheItemPolicy());
return downloadCommonData;
}
}
如果我在工厂中只使用一个参数,它就可以正常工作。有人可以帮忙吗?
解决方案
Returns
需要匹配设置中使用的匹配器数量的表达式
设置中有两个日期时间参数匹配器,因此需要在返回表达式中使用两个。
this.dataFactoryMock
.Setup(factory => factory.Factory(It.IsAny<DateTime>(), It.IsAny<DateTime>()))
.Returns((DateTime adjustedAnalysisDate, DateTime analysisDate) =>
commonDataFactory.Factory(adjustedAnalysisDate, analysisDate)
);
推荐阅读
- algolia - 在 Algolia 中实现路由后搜索 ObjectID
- c++ - 创建一个空心矩形
- ios - 如何从 FFT 中获得更精确的输出?
- mqtt - 无法接收遥测事物板
- flutter - 如何检测手指移入或移出小部件
- python-3.x - KeyError: "DatetimeIndex(['2006-12-31', '2007-12-31'],\n dtype='datetime64[ns]', name='date', freq=None) 不在索引中
- amazon-s3 - S3冗余,3+可用区保证
- python - 通过将其元素与 Python 中所有其他子列表中的元素进行比较来删除子列表
- c# - 如何在 Asp.net MVC 中使用 First、Next、Previous 制作数据库记录导航按钮
- python - Pyglet 总是显示“按 1 开始”(python 3.6)