c# - 设置中的 .NET Core Moq Params 数组
问题描述
我正在尝试使用 Moq 来模拟来自使用 params 关键字和 int 数组的方法的响应
public interface IValidationHelper
{
Task<bool> ValidateParents(params int?[] parents);
}
我发现自己必须以两种方式对其进行模拟才能使其正确模拟。首先,使用单个参数,其次,使用两个参数。有没有办法在设置中的 It.IsAny 中指定参数之类的东西?
private void MockValidateParents(bool valid = true)
{
_validationHelper.Setup(x => x.ValidateParents(
It.IsAny<int>()
)).ReturnsAsync(valid);
_validationHelper.Setup(x => x.ValidateParents(
It.IsAny<int>(),
It.IsAny<int>()
)).ReturnsAsync(valid);
}
解决方案
我认为您需要告诉模拟它可以采用的任何数组:
_validationHelper.Setup(x => x.ValidateParents(
It.IsAny<int?[]>()
)).ReturnsAsync(valid);
而不是告诉它所有的单一输入。
推荐阅读
- javascript - 使用基于分组的源对象数组的属性创建对象数组
- autodesk-forge - 由于未捕获的 Promise,实时部署时的 Forge Extension 未加载
- android - 在 Android 中创建日历事件,在 iOS 中编辑
- kubernetes - 部署 2 个 GKE 集群,第一个集群专用于 Spinnaker,其他集群用于我的应用程序
- r - 按组创建新的 POSIXct 序列
- vmware-player - VMware 工作站播放器在软件升级到版本 15 时无法使用暂停按钮
- c++ - 为什么这是一个未解决的符号
- asp.net - 无法加载 DLL 'libargon2.dll':找不到指定的模块。(来自 HRESULT 的异常:0x8007007E)
- ruby - Ruby Inherit Class 在同一模块中的 2 个分隔文件
- powershell - 从 powershell 脚本连接到 firebird