将 Moq 模拟对象传递给构造函数

2024-01-26

我已经使用 RhinoMocks 有一段时间了,但刚刚开始研究起订量。我有一个非常基本的问题,令我惊讶的是,这并没有立即可用。假设我有以下类定义:

public class Foo
{
    private IBar _bar; 
    public Foo(IBar bar)
    {
        _bar = bar; 
    }
    ..
}

现在我有一个测试,我需要模拟发送到 Foo 的 IBar。在 RhinoMocks 中,我只需像下面那样做,它会工作得很好:

var mock = MockRepository.GenerateMock<IBar>(); 
var foo = new Foo(mock); 

然而,在 Moq 中,这似乎并不以同样的方式工作。我正在做如下:

var mock = new Mock<IBar>(); 
var foo = new Foo(mock); 

然而,现在它失败了 - 告诉我“无法从 'Moq.Mock' 转换为 'IBar'。我做错了什么?使用 Moq 执行此操作的推荐方法是什么?


您需要传递mock的对象实例

var mock = new Mock<IBar>();  
var foo = new Foo(mock.Object);

您还可以使用模拟对象来访问实例的方法。

mock.Object.GetFoo();

moq docs https://github.com/Moq/moq4/wiki/Quickstart

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Moq 模拟对象传递给构造函数 的相关文章

  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo
  • 秒表有最长运行时间吗?

    多久可以Stopwatch在 NET 中运行 如果达到该限制 它会回绕到负数还是从 0 重新开始 Stopwatch Elapsed返回一个TimeSpan From MSDN https learn microsoft com en us
  • .NET 中是否有内置函数可以对密码进行哈希处理?

    我看到这个问题加密 散列数据库中的纯文本密码 https stackoverflow com questions 287517 encrypting hashing plain text passwords in database 我知道我
  • 从Web API同步调用外部api

    我需要从我的 Web API 2 控制器调用外部 api 类似于此处的要求 使用 HttpClient 从 Web API 操作调用外部 HTTP 服务 https stackoverflow com questions 13222998
  • 在 Windows 窗体中保存带有 Alpha 通道的单色位图会保存不同(错误)的颜色

    在 C NET 2 0 Windows 窗体 Visual Studio Express 2010 中 我保存由相同颜色组成的图像 Bitmap bitmap new Bitmap width height PixelFormat Form
  • 如何从 appsettings.json 文件中的对象数组读取值

    我的 appsettings json 文件 StudentBirthdays Anne 01 11 2000 Peter 29 07 2001 Jane 15 10 2001 John Not Mentioned 我有一个单独的配置类 p
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • WCF 中 SOAP 消息的数字签名

    我在 4 0 中有一个 WCF 服务 我需要向 SOAP 响应添加数字签名 我不太确定实际上应该如何完成 我相信响应应该类似于下面的链接中显示的内容 https spaces internet2 edu display ISWG Signe
  • while 循环中的 scanf

    在这段代码中 scanf只工作一次 我究竟做错了什么 include
  • 如何在整个 ASP .NET MVC 应用程序中需要授权

    我创建的应用程序中 除了启用登录的操作之外的每个操作都应该超出未登录用户的限制 我应该添加 Authorize 每个班级标题前的注释 像这儿 namespace WebApplication2 Controllers Authorize p
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 如何在 C 中调用采用匿名结构的函数?

    如何在 C 中调用采用匿名结构的函数 比如这个函数 void func struct int x p printf i n p x 当提供原型的函数声明在范围内时 调用该函数的参数必须具有与原型中声明的类型兼容的类型 其中 兼容 具有标准定
  • 如何查看网络连接状态是否发生变化?

    我正在编写一个应用程序 用于检查计算机是否连接到某个特定网络 并为我们的用户带来一些魔力 该应用程序将在后台运行并执行检查是否用户请求 托盘中的菜单 我还希望应用程序能够自动检查用户是否从有线更改为无线 或者断开连接并连接到新网络 并执行魔
  • Windows 窗体:如果文本太长,请添加新行到标签

    我正在使用 C 有时 从网络服务返回的文本 我在标签中显示 太长 并且会在表单边缘被截断 如果标签不适合表单 是否有一种简单的方法可以在标签中添加换行符 Thanks 如果您将标签设置为autosize 它会随着您输入的任何文本自动增长 为
  • 如何使用 C# / .Net 将文件列表从 AWS S3 下载到我的设备?

    我希望下载存储在 S3 中的多个图像 但目前如果我只能下载一个就足够了 我有对象路径的信息 当我运行以下代码时 出现此错误 遇到错误 消息 读取对象时 访问被拒绝 我首先做一个亚马逊S3客户端基于我的密钥和访问配置的对象连接到服务器 然后创
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 如何将带有 IP 地址的连接字符串放入 web.config 文件中?

    我们当前在 web config 文件中使用以下连接字符串 add name DBConnectionString connectionString Data Source ourServer Initial Catalog ourDB P
  • 如何在文本框中插入图像

    有没有办法在文本框中插入图像 我正在开发一个聊天应用程序 我想用图标图像更改值 等 但我找不到如何在文本框中插入图像 Thanks 如果您使用 RichTextBox 进行聊天 请查看Paste http msdn microsoft co

随机推荐

  • NineOldAndroids,旋转或移动后不可点击视图

    I use 九老机器人 http nineoldandroids com2 4 0 为对象设置动画 主要用于运动和变换的控制 在 Android 4 0 及更高版本上一切正常 但在以前的版本 2 1 2 3 上 动画元素没有获得焦点并且不可
  • 在 Rails 中调试? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 如何在 RubyonRails 中 相对 成功地调试 我知道并广泛使用以下内容 Terminal 导轨控制台 开发者工具 日志文件 生产 开发
  • 删除 pandas DataFrame 列中字符串条目的末尾

    我有一个 pandas Dataframe 其中一列是文件列表 import pandas as pd df pd read csv fname csv df head filename A B C fn1 txt 2 4 5 fn2 tx
  • NA 正在箱线图 ggplot2 中绘制

    我正在尝试在 ggplot2 中绘制一个简单的箱线图 我有物种丰富度与土地利用类别 但是 我的数据中有 2 个 NA 出于某种奇怪的原因 它们被策划了 即使它们被 R 理解为 NA 有什么建议删除它们吗 我正在使用的代码是 ggplot d
  • ActiveRecord可以远程连接PostgreSQL并保护DB密码吗?

    我在远程 VPS 服务器 CentOS 5 上有一个 PostgreSQL 数据库 我想连接一个 Rails 应用程序 从我的本地 Mac 笔记本电脑连接到它 在我的笔记本电脑上 我安装了 ActiveRecord PostgreSQL 适
  • Apache solr 频繁添加/编辑/删除记录

    我正在考虑使用 Apache Solr 在我的数据库中 我将有大约 10 000 000 条记录 我将使用它的最坏情况有大约 20 个可搜索 可排序字段 我的问题是这些字段在一天中可能会频繁更改值 例如 在我的数据库中 我可能会同时更改 1
  • 将数组插入 mysql 数据库列

    我正在尝试将表单中的多选下拉列表中的值插入到 mysql 数据库列中 例如 下拉列表将选择一个或多个选项 然后在发布表单时将数据插入到 mysql 数据库中的一列中 我陷入了如何插入数据的困境 如果你想插入单行 那么你可以使用 implod
  • 如何获取使用 ChromeDriver 在 Azure 云服务中工作的 C# azure 服务

    我编写了一个使用 Selenium WebDriver ChromeDriver 的 C Azure 云服务 但当我将其部署到 Azure 时它不起作用 在本地运行良好 可能是因为我安装了 Chrome 我使用我的服务部署 chromedr
  • 如何添加自定义键盘

    我做了一个简单的应用程序 我的应用程序包含 10 个文本字段 我需要的是我需要隐藏默认键盘我放置手动键像这样 http b imagehost org download 0994 keypad 我该如何完成这个按键作为我的应用程序的键盘 任
  • gdb:打印二维fortran数组[重复]

    这个问题在这里已经有答案了 使用 GDB 在 Fortran 代码中打印二维数组的值时遇到问题 gdb print var 1 2 no such vector element 经过广泛的搜索后 我发现了许多关于该问题的帖子 日期为 200
  • 我可以为我的函数和类使用 PHP 保留名称吗?

    我想创建一个名为 new 的函数和一个名为 case 的类 我可以用 PHP 做到这一点吗 No http www php net manual en reserved keywords php you http codepad org z
  • 共享两个组合框的数据源

    我的 GUI 中有多个组合框 它们都需要数据 这些数据会随机变化 因此需要一种快速方法来保持所有值同步 我遇到了 DefaultComboBoxModel 它实际上非常适合 唯一的问题是 我需要组合框彼此独立 这意味着 如果我在其中选择一个
  • 页面重新加载时 Angular 应用程序中的 Grunt URL 重写

    Grunt 文件中的 livereload 块如下所示 livereload options open true middleware function connect options middleware var optBase type
  • 默认参数和非默认参数的顺序

    在Python中 我知道默认参数出现在末尾 并且非默认参数不能跟在默认参数后面 没事儿 例如 gt gt gt def foo x 0 y return x y SyntaxError non default argument follow
  • ggplot - 多个图例排列

    我想在 ggplot 中排列具有多行和多列的多个图例 然而目前 从文档中我只能决定方向或操作 1 个图例内的行 列 我是否忽略了什么 感谢您提供解决方案的任何参考点 这是示例代码以及我所做的和预期的结果 data lt seq 1000 4
  • Minecraft 如何进行光照? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我唯一熟悉的模型是漫射照明 但这看起来比那要复杂得多 每个方块的亮度级别从 15 到 0 每个级别都比其上方的级别低 20 如果一个正
  • 如何将摘要输出转换为数据框?

    我总结了由 ID 组成的数据框 称为 DATA 的一列 以便获得给定列中每个 ID 的总数 我想将其转换为另一个数据框 称为 TOTALNUM 所以我有两列 第一列是 ID 本身 第二列是每个 ID 的总数 这可能吗 样本数据 ids lt
  • 在 iOS 上将立体声音频拆分为单声道流

    如果已回答此问题 我们深表歉意 我看到了很多问题 但没有好的答案 我正在尝试将立体声音乐从 iPod 库导出到两个单声道 caf 文件 我怎样才能在 iOS 上做到这一点 我目前正在使用 Objective C Thanks 更新 我已经成
  • 如何在 Flutter 中使屏幕可滚动?

    在我的 Flutter 项目中 在一页中我有一些行 包括垂直对齐的卡片 现在 我希望这个屏幕可以滚动 我尝试将该列替换为Listview但没有成功 我也尝试用它包裹它单子滚动视图但没有用 它显示如下图所示 这是代码 HomeFragment
  • 将 Moq 模拟对象传递给构造函数

    我已经使用 RhinoMocks 有一段时间了 但刚刚开始研究起订量 我有一个非常基本的问题 令我惊讶的是 这并没有立即可用 假设我有以下类定义 public class Foo private IBar bar public Foo IB