如何使用模拟匿名类型的设置?

2023-12-06

我有以下存储库:

interface IReportingRepository where T: Report
{
     IEnumerable<T> GetReports<T>(object constraints);
}

我正在尝试模拟对此存储库的调用:

var reportingRepostory = new Mock<IReportingRepository>();
                       reportingRepostory.Setup(x => 
                       x.GetReports<ServiceReport (Moq.It.IsAny<object>())).
                       Returns(new List<ServiceReport>(){Report1, Report2});

然而,而不是传递

Moq.It.IsAny<object>()

我想传递匿名类型

new {Activated = true, Enabled = true}

这样我就可以设置我的期望,即使用正确的匿名类型。


您可以使用带有一些反射帮助的自定义匹配器:

var reportingRepostory = new Mock<IReportingRepository>();
reportingRepostory
    .Setup(x => x.GetReports<ServiceReport>(HasProperties()))
    .Returns(new List<ServiceReport>(){Report1, Report2});

Where HasProperties方法实现如下:

private object HasProperties()
{
    return Match.Create(
        (object o)  =>
        {
            var properties = o.GetType().GetProperties();
            return properties.Any(p => p.Name == "Available")
                && properties.Any(p => p.Name == "Enabled");
        });
}    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用模拟匿名类型的设置? 的相关文章

  • 双缓冲列表框

    我有一个 CheckedListBox WinForms 控件 它继承自 ListBox 谷歌搜索显示问题出在 ListBox 该控件锚定到其窗体的所有四个边 当调整表单大小时 列表框会出现难看的闪烁 我尝试继承 CheckedListBo
  • 带有 Windows 窗体应用程序的地图

    我正在构建一个需要地图的 C Winforms 应用程序 例如 Google 地图 Bing 地图等 但我对 ToU 许可 非商业使用等感到非常困惑 我的问题 您建议将哪个地图提供商 最好是免费的 嵌入到 winforms 应用程序中以用于
  • 任务计划程序控制台输出在哪里? (C# 控制台应用程序)

    我正在运行 C Windows 控制台应用程序 并通过任务计划程序传递几个参数 它全天运行 将其他应用程序创建的平面文件数据加载到 SQL Server 中 该程序间歇性失败 并且我有 Try Catch 逻辑 该逻辑使用 Console
  • 递归显式模板实例化以导出库的符号

    在我之前的问题中我问过递归显式模板实例化是否可能 https stackoverflow com questions 7395113 is recursive explicit template instantiation possible
  • 有没有一种简单的方法来获取 .NET 为参数化查询生成的“sp_executesql”查询?

    背景 如果我有以下程序 public class Program public static void Main using var connection new SqlConnection Server local Database Te
  • 在 IEnumerable 中查找相同的集合

    有一项任务要弄清楚如何更新表 DataTable 连接到一个database没有UPDATE陈述 我想出的例子是从邮箱中读取警报 该表将写入 Alerts 如果邮件正文包含单词 SUCCESS gt Alert 变为绿色 如果 FAIL g
  • 管理多个解决方案中存在的 C# 项目的 Nuget 包

    我现在正处于这样的阶段重构疯狂一个有很多的大项目遗留和不稳定的模块 我决定拆分解决方案目前 所有项目 大约有 20 个 而且由于下个月肯定会出现单元测试项目 还会有更多 链接在一起 使其更加独立和细化 通过这种方法 有一些模块 例如需要在多
  • iPhone 编程游戏

    使用 Objective C 还是 C 为 iPhone 编写游戏最好 像 Flight Control 这样的游戏会用什么语言编写 图形应采用什么格式才能在 iPhone 上正确显示并快速加载 像 Flight Control 这样的游戏
  • 如何使用 Regsvr32 注册 .NET COM DLL?

    我有一个使用 COM DLL 的 VB6 应用程序 该DLL是用C 编写的 在 C 项目属性中 我检查了 Register for COM interop 选项 VB6 应用程序在我的开发机器上运行良好 C 代码完全遵循以下格式 CodeP
  • 类型定义存在于两个库中

    我正在使用 NET 4 5 构建 ASP NET Web 窗体网站 错误 The type System ComponentModel DataAnnotations Schema ForeignKeyAttribute exists in
  • C# 中 value 为匿名类型的字典

    是否可以在 C 中创建一个System Collections Generic Dictionary
  • 如何使用“std::array”作为“template class”形式的模板参数?

    请考虑以下事项tree class template
  • 可以轻易移动,但不可轻易复制

    是否可以创建类类型 即 普通移动构造 但不是普通复制构造 但仍然可复制构造 普通复制构造 但不是普通移动构造 但仍然可移动构造 可以简单地复制分配 但不能简单地移动分配 但仍然可以移动分配 可以简单地移动分配 但不能简单地复制分配 但仍然可
  • boost变体简单调用常用方法

    我有两个指针 只能设置其中之一 所以我正在考虑使用 boost variant 例如 boost variant
  • 将控制台输入和输出重定向到文本框

    您好 提前致谢 我正在尝试 非常努力 将控制台输入和输出重定向到文本框 到目前为止 输出工作正常 但问题在于输入 例如 我无法执行一个简单的程序来执行以下操作 Console WriteLine 请输入您的姓名 字符串名称 Console
  • 变形:Opencv 使用 Visual Studio 将图像显示到曲面屏幕

    我正在尝试使用 opencv API 来扭曲图像 以便将其显示到曲面屏幕上 我已经浏览了opencv中提供的翘曲apihere http docs opencv org 2 4 modules stitching doc warpers h
  • 向量和常量

    考虑一下这个 void f vector
  • 警告从 lambda 返回捕获的引用

    我尝试使用 lambda 有条件地将引用绑定到两个变量之一 int foo bar int choice gt int if true some condition return foo else return bar 这会在 clang
  • 在 C++11 中设置 std::thread 优先级的可移植方法

    在后 C 11 世界中设置 std thread 实例的优先级的正确方法是什么 是否有一种至少在 Windows 和 POSIX Linux 环境中有效的可移植方法 或者是获取句柄并使用可用于特定操作系统的任何本机调用的问题 无法通过 C
  • 文件按文件名模式存在

    我在用 File Exists filepath 我想做的是将其替换为模式 因为文件名的第一部分发生了变化 例如 该文件可以是 01 peach xml 02 peach xml 03 peach xml 如何根据某种搜索模式检查文件是否存

随机推荐

  • 在Java中找到二次回归曲线的最佳方法

    我有三组数据 例如 x y 4 0 6 60 8 0 有谁知道任何 有效的 Java 代码可以给我返回 a b 和 c 的值 系数 我假设您想要这种形式的公式 y a x 2 b x c 如果只有三个点 您可以使用以下公式描述经过所有三个点
  • 在 XHR 中使用 multipart/form-data 作为 Content-Type 时收到“400 Bad Request”

    我有一个发送一些数据的 AJAX 请求 数据尊重 multipart form data规格 我面临的问题是浏览器将 Content Type 标头设置为 text plain 它应该是 multipart form data 我尝试这样做
  • JPanel 不绘画,JFrame 保持空白

    我正在开发一款类似于数字口袋妖怪卡牌的游戏 当我尝试绘制任何图像时 JFrame 仍为空 这可能是一个简单的错误 但我一直无法找到解决方案 在 Stack Overflow 上 我看到了很多像我这样的问题 尽管他们的解决方案不适用于我的代码
  • 如何将图像(播放器)旋转到鼠标方向?

    我正在考虑在 pygame 中制作一个 2d 射击游戏 我想让我的玩家 Player 1 指向鼠标方向 我花了几个小时寻找解决方案 并尝试了我能找到的所有解决方案 但没有一个有效 所以你能帮助我吗 这是我的代码 import pygame
  • 纯 JavaScript,onclick 无法在移动设备上运行

    现在我并不是真正的 Javascript 明星 但我似乎遇到了移动设备和 onclick 功能的所有已知问题 Onclick 需要鼠标操作 当然在手机上不适用 现在在 Jquery 中 您可以使用 on 但是这如何与常规 javascrip
  • 无法解析“SingleSignOutFilter”中的“setCasServerUrlPrefix”

    最近升级了依赖 CAS 进行身份验证的 Spring Boot 应用程序后 该项目不再编译 因为setCasServerUrlPrefix找不到方法SingleSignOutFilter java cannot find symbol sy
  • R:覆盖栅格图层的xy坐标

    我有一个带有 XY 像素坐标的栅格 我想将其转换为纬度和经度 class RasterLayer dimensions 1617 1596 2580732 nrow ncol ncell resolution 1 1 x y extent
  • 使用 C# Process 运行可执行程序

    我是一名生物信息学人员 我的工作使用 C 我已经多次使用 C 中的进程来运行可执行程序 这次我有一个新问题 我在 Windows 中下载了一个名为 Blast 的程序的 exe 文件 如果我输入我的命令 blastp query input
  • python 中 GSDMM 的实际示例?

    我想使用 GSDMM 将主题分配给我的数据集中的一些推文 我发现的唯一例子 1 and 2 不够详细 我想知道您是否知道一个显示 GSDMM 是如何使用 python 实现的来源 或者足够关心做一个小例子 我最终编译了 GSDMM 的代码
  • 无法升级Android SDK

    我已经关闭了所有窗口 重新启动了计算机 但 Eclipse 告诉我 C Program Files android sdk tools 正在被访问 我什至删除了该目录 但我仍然得到 如何修复 无法重命名目录 C Program 文件 And
  • 使用 ToString() 格式化时小数和双精度之间的舍入差异

    使用格式化数值时我发现结果存在差异ToString F2 0 125m ToString F2 CultureInfo InvariantCulture 0 13 0 125 ToString F2 CultureInfo Invarian
  • 将所有并排单词成对分割字符串单词[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我需要将字符串分割成单词 然后将每个连续的单词成对连接 如下所示 This is my
  • 检查文件/文件夹访问权限

    我得到一个UnautorizedAccessException运行这段代码 string fileList Directory GetFiles strDir strExt 异常发生在c users username appdata如何检查
  • Worklight 构建错误无法初始化 ClientProjectBuilder

    我突然开始收到如下所示的工作灯构建错误 我不知道为什么它突然开始发生 该代码工作正常 直到我用于 Xcode 构建的远程计算机重新启动 有什么线索可能导致它吗 ipad 构建失败 初始化 ClientProjectBuilder 失败 an
  • Amazon sns(推送通知)不发送到 IOS 应用程序

    最近app收不到通知 android端正常 ios端却失败 所以这就是我的尝试 1 generate token from apple apn service 2 create the endpoint at amazon backend
  • 代码行分析器是否需要解析树,这是否足够?

    我正在尝试确定为某种语言 例如可用于 Python 和 Matlab 的语言 编写线路分析器所需的条件 解释 行分析器 的一种天真的方法是假设可以在每一行周围插入时间记录 但行的定义取决于解析器如何处理空格 这只是第一个问题 似乎需要使用解
  • 跳出包含 switch 语句的 while 循环

    我无法弄清楚如何跳出包含 switch 语句的循环 Break 从开关中中断 而不是从循环中中断 可能有一个更优雅的解决方案 我已经实现了一个标志 该标志一开始为 true 然后设置为 false 然后结束循环 您能提供更好的解决方案吗 背
  • Dash Plotly 日期时间选择

    Dash 世界中是否有任何东西可以提供一个很好的界面来输入日期时间 时间增量 无论什么类型 np pd dt 等 我目前只能找到真正支持日期的代码https dash plotly com dash core components date
  • 如何循环遍历动态表单输入并将其插入数组

    我有一个表单 要求用户在多个表单字段中输入数字 他们可以选择他们想要的表单字段数量 我已将表单字段标记为 df1 df2 df3 等 对于用户添加的每个额外表单字段 只需在 df 后面的数字上加 1 我的问题是尝试捕获 使用 PHP 这些字
  • 如何使用模拟匿名类型的设置?

    我有以下存储库 interface IReportingRepository where T Report IEnumerable