c# - 具有单个通用参数和多个约束的最小起订量方法
问题描述
我有以下方法签名,我想设置一个模拟:-
public int Update<T>(T item) where T : IItemID, IItemData
尝试设置模拟(使用最小起订量)时,我无法为 T 设置正确的类型:-
mock.Setup(x => x.Update(It.IsAny<???>()).Returns(1);
我在单元测试项目中尝试过使用“假”接口:-
public interface IFake : IITemID, IItemData
{
}
mock.Setup(x => x.Update(It.IsAny<IFake>()).Returns(1)
但是我的单元测试中的验证失败,因为我使用的对象不是从 IFake 继承的。该对象是从 IItemID 和 IItemData 继承的实际类型。
无论如何要为这个具有多个约束的 Update 方法设置模拟?
更新 感谢所有信息。再次经历这个之后,看起来最好的解决方案是不使用多个接口约束,因为这不能被模拟。我只是想知道是否有解决方案,因为这似乎会在以后引起大量问题。
再次感谢!
解决方案
尝试
mock.Setup(x => x.Update(It.IsAny<It.IsAnyType>()).Returns(1);
推荐阅读
- android - 如何在 android studio 设备模拟器中模拟来自“不可用”的电话?
- sql - 如何访问大查询表中列内的数据数组的列名?
- java - java.lang.ExceptionInInitializerError 引起:com.fasterxml.jackson.databind.JsonMappingException:Jackson 版本太旧 2.5.1
- r - 根据总和选择列
- python - 批量更新的 Welford 方差/标准算法的公式是什么?
- google-apps-script - 在两个电子表格之间查找一行,然后查找包含第一行中的值的行
- java - 如何在 JFROG 上上传带有目录的 jar 文件?
- android - 使用 addImage() 和会话优化 ArCore Fragment 导航
- python - UnboundLocalError:分配前引用的局部变量“var”
- c - 使用 fread 从文件读取时变量值发生意外变化