从 Moq 调用操作

2023-12-31

我有一个服务,其方法需要两个Actions,一为成功,一为失败。每个Action采用包含附加信息的 Result 参数...

void AuthoriseUser(AuthDetails loginDetails, 
  Action<AuthResult> onSuccess, 
  Action<AuthResult> onFailure);

我正在为依赖于该服务的类编写单元测试,并且我想测试该类是否在onSuccess(...) and onFailure(...)回调。这些方法要么是私有方法,要么是匿名方法,那么如何设置模拟服务来调用任一操作?


您可以使用Callback方法(另见起订量快速入门 https://code.google.com/p/moq/wiki/QuickStart回调部分)来配置一个回调,该回调使用模拟方法调用的原始参数进行调用(AuthoriseUser)这样你就可以打电话给你的onSuccess and onFailure那里的回调:

var moq = new Mock<IMyService>();
moq.Setup(m => m.AuthoriseUser(It.IsAny<AuthDetails>(),
                                It.IsAny<Action<AuthResult>>(),
                                It.IsAny<Action<AuthResult>>()))
    .Callback<AuthDetails, Action<AuthResult>, Action<AuthResult>>(
    (loginDetails, onSuccess, onFailure) =>
        {
            onSuccess(new AuthResult()); // fire onSuccess
            onFailure(new AuthResult()); // fire onFailure
        });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Moq 调用操作 的相关文章

随机推荐

  • 在 C# 中通过 HTTP 侦听器获取发布的文件

    我使用 C 制作了一个简单的 http 服务器 我知道如何获取发布的数据并输出它们 这是我的 C 代码 public static void start HttpListener listener new HttpListener list
  • 用于图像创建的 Scala 库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有好的 Scala 或 Java 图像处理库 对于简单的任务 例如与其他一些图像合成图像然后生成拇
  • Spark 2.0中DataFrame的GroupBy操作需要花费大量时间

    在我的一项 Spark 作业 EMR 5 0 0 上的 2 0 中 我有大约 5GB 的数据与 30 行交叉连接 数据大小几 MB 我还需要按它分组 我注意到我花费了大量时间 使用 1 个 m3 xlarge 主节点和 6 个 m3 2xl
  • 是否可以将 requirejs 模块转换为 commonjs ?

    It s 已经可以将 commonjs 模块转换为 requirejs http requirejs org docs commonjs html autoconversion 但我仍然想知道是否可以做相反的事情 有没有办法将 requir
  • 依赖注入和工作单元模式

    我有一个两难的处境 我使用 DI 即 工厂 为自制 ORM 提供核心组件 容器根据请求提供数据库连接 DAO 映射器及其结果域对象 这是映射器和域对象类的基本概述 class Mapper public function construct
  • 我如何在 xcode iphone 中创建一个滑动菜单,就像主 android 菜单滑动菜单一样?

    我一直在网上寻找标题中描述的滑动菜单的示例 我所需要的只是知道我应该从 iphone 库中查找哪些项目来制作这个 我不想占用别人的时间让他们写出代码 但如果有一点指导将不胜感激 我们在 iPhone 应用程序中创建了一个滑动抽屉 我们使用以
  • PHP 中仅用一个空格替换多个空格和换行符

    我有一个带有多个换行符的字符串 字符串 This is a dummy text I need to format this 期望的输出 This is a dummy text I need to format this 我正在使用这个
  • `[<-`(`*tmp*` 中出错,下标越界 下标越界

    在下面的代码中 我尝试创建一个矩阵 列出每个城市的 opt lam 运行循环后 前两个城市始终有效 然后对于此后的任何城市都会出现错误 这是我得到的错误 coefmatrix 工作正常 只是 lambdamatrix 产生此错误 错误于 l
  • 如何计算用于 deflate 压缩的良好预设字典

    我有机会预设字典以进行 deflate 压缩 这对我来说是有意义的 因为要压缩的数据相对较小 为 1kb 3kb 而且我有大量代表性示例 要压缩的数据由任意字节序列组成 因此标记化等不是一个好方法 此外 数据显示大量重复 数据示例之间 因此
  • 有没有办法在 JS 变量上设置断点?

    我的 javascript 文件中有一个变量不断发生变化 但我不知道为什么或何时发生变化 有没有办法在变量更改时设置断点或其他东西 我目前在 Mac 上使用 Safari 但也安装了 Chrome 因此如果 Chrome 开发者工具中有更简
  • 无法在 Xamarin Studio 中创建单一视图应用程序

    我正在尝试从多平台选项卡在 Xamarin Studio 中创建单个视图应用程序 但是 目标平台复选框以及 下一步 按钮呈灰色 禁用 我在 Mac 上 如果您很久以前安装了免费版本的 Xamarin 当时 iO 开发尚未免费提供 则 iO
  • pglm 中的 lag() 似乎对 stats 中的 lag() 存在 bug

    正如标题所说 我加载后pglm lag停止正常工作 library pglm c 1 2 3 4 gt lag 该对象被转换为时间序列 并且不再与 tibbles 兼容 连卸pglm 的依赖性lag仍然有效 解决方案可能是实际上从不加载pg
  • 如何使用 zend from 在 zend Framework 2 中添加自定义属性

    我想在 zend 框架项目中使用 angularJS 并且在这个项目中表单是使用 zend 表单生成的 如何在表单元素中添加诸如 ng model 之类的角度指令 但是每当我尝试在视图中的 zend form 元素 输入 选择等 中添加此自
  • 如何使用 selenium python 抓取悬停高图表上的值?

    我正在尝试从中抓取数据https www similarweb com website zalando de overview https www similarweb com website zalando de overview使用Py
  • 编辑 D3 Sunburst 可视化的innerRadius

    如何更改旭日可视化最内圆的半径 请参阅以下示例 http bl ocks org d 910126 http bl ocks org d 910126 注意中心区域有多大 可以再小一点吗 另外 是否可以为旭日中的所有层定义不同的高度 Yes
  • 无法从 Web.Config 读取 appSettings 值

    我的 web config 中有以下内容
  • C# 中附加到鼠标的工具提示

    如何使用 C 获取附加到鼠标光标的工具提示 我试图实现如下所示的效果 一个小工具提示显示 Ctrl Shift Alt 键的状态 我目前正在使用Tooltip但除非有大约 2 行文本 否则它拒绝显示 tt new ToolTip tt Au
  • 如何解决加载模型以获得新预测的问题?

    我训练了一个模型并将其另存为import os model save 我想使用我的模型对新测试集进行预测 因此我通过以下方式加载它model tf keras models load model 它向我展示了这种警告 警告 tensorfl
  • C# 的 HttpListener 问题

    我使用一个 Windows 服务编写了HttpListener异步处理来自点的请求 它工作正常 但有时会遇到问题 需要重新启动服务或服务器才能修复 最初我声明了侦听器对象 public HttpListener PointsListener
  • 从 Moq 调用操作

    我有一个服务 其方法需要两个Actions 一为成功 一为失败 每个Action采用包含附加信息的 Result 参数 void AuthoriseUser AuthDetails loginDetails Action