在 Expect.Call 中设置对象的属性

2024-01-12

很难解释我正在寻找的内容,但我的例子应该可以澄清它。

我有下一个代码:

var schedule = ScheduleUtil.CreateScheduleDto(user, user);
Expect.Call(() => _scheduleRepository.Save(schedule));

现在,我想做的是,当进行 Save 调用时,schedule.id 属性应设置为另一个值(例如 1)。

我不想嘲笑时间表。这可以做到吗? Save 方法不返回值,因此不可能,但我确实希望修改对象计划。

更新:也许一个小例子可以澄清我到底想要什么。

假设有一个带有 Save 方法的类:

公共无效创建(实体实体) { //实体保存到数据库 //entity.id 使用数据库中创建的 id 进行更新 }

因此,在创建之前,entity.id 是 -1,创建之后它是 > 0。

现在,有一个服务使用此 Create。该服务方法的代码契约规定,在调用之前,实体的 id 必须等于 -1,在调用之后,实体的 id 必须 > 0(前置条件和后置条件)。

所以,我需要的是这样的: var 实体 = 新实体(); //id == -1 Expect.Call(() => _instance.Create(实体);
//现在entity.id应该是一个大于0的随机数。这就是我需要的,让Rhino Mocks将实体的id更新为给定的整数。这可能吗?


不,如果你不是在嘲笑_scheduleRepository,Rhino Mocks 并不知道这件事。你为什么不想嘲笑_scheduleRepository?

EDIT:好的,现在我知道你想做什么了。使用“WhenCalled”扩展方法来定义当Rhino.Mocks拦截调用时要执行的代码。像这样的东西应该有效:

_scheduleRepository.Expect(s => s.Save(schedule)).WhenCalled(a => ((Schedule) a.Arguments[0]).Id = 1);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Expect.Call 中设置对象的属性 的相关文章

  • Rhino Mocks 上的模拟和存根有什么区别?

    我对此还没有玩够 通常使用模拟 但我想知道这两者之间有什么区别 以及何时在 Rhino Mocks 上使用其中之一 Update 我还在中找到了我的问题的答案阿延德的话 存根和模拟之间的区别您可以在本文中获得这些术语的实际定义 模拟不是存根
  • 为什么我无法更改 Rhino Mocks 存根对象中的返回值?

    如果这是一个愚蠢的问题 请原谅我 但我在嘲笑方面还很陌生 并且正在努力解决这个问题 我有一些单元测试 使用内置的 Visual Studio 2010 Professional 测试功能 它们使用方法所需的存根 我创建了一个存根 并为几个属
  • 使用 Rhino-Mock 存根排序方法返回值

    我在阅读 Roy Osherove 的同时开始尝试 Rhino Mocks 3 6 单元测试的艺术 他有一个示例 演示了可以编写模拟方法的脚本 以便在使用相同参数调用两次时返回不同的结果 Test public void ReturnRes
  • 与在 Rhino Mocks 中使用 Ordered() 等效的 AAA 语法是什么

    我一生都无法找到使用 Rhino 中的 Fluent AAA 语法来验证操作顺序的正确语法 我知道如何使用旧的学校记录 播放语法来做到这一点 MockRepository repository new MockRepository usin
  • 如何使用 Rhino.Mocks 来模拟 ControllerContext

    我正在尝试使用Rhino Mocks模拟一个ControllerContext对象来访问运行时对象 例如控制器单元测试中的用户 请求 响应和会话 我编写了以下方法来尝试模拟控制器 private TestController CreateT
  • Rhinomocks - 嘲笑代表

    public interface IServiceInvoker R InvokeService
  • 如何模拟 IQueryable

    我正在创建一个公开 IQueryable 的存储库 为我的单元测试模拟这个的最佳方法是什么 由于我将 RhinoMocks 用于其余的模拟对象 因此我尝试执行以下操作 IQueryable
  • C# 中的模拟文件 IO 静态类

    我是单元测试的新手 我需要模拟 System IO 命名空间中的 File 静态类 我正在使用 Rhinomock 实现此目的的最佳方法是什么 可以说我需要模拟 File Exists File Delete 您无法使用 Rhino 模拟来
  • Rhino Mocks 部分模拟

    我正在尝试测试一些现有类的逻辑 目前不可能重构这些类 因为它们非常复杂并且正在生产中 我想做的是创建一个模拟对象并测试一个在内部调用另一个很难模拟的方法的方法 所以我只想为辅助方法调用设置一个行为 但是当我设置该方法的行为时 该方法的代码被
  • 无法使用 Rhino Mocks 模拟具有数组参数的构造函数的类

    我们无法在 RhinoMocks 中模拟此类 public class Service public Service Command commands public abstract class Command Code var mock
  • Rhino Mocks:当我的参数之一是 Expression> 时,我可以使用 Stub() 吗?

    我的接口上有一个如下所示的方法 我想用 Rhino Mocks 对其进行存根 TValue GetPropertyOfExistingObject
  • 如何在 VB.NET 中使用 RhinoMocks 设置只读属性的返回值?

    我在 VB NET 中使用 RhinoMock 需要设置只读列表的返回值 这就是我的want要做 但不起作用 dim s Rhino Mocks MockRepository GenerateStub of IUserDto s Id gu
  • 对 Rhino Mocks 中的方法调用进行计数

    所以 我想用比 An Ounce 或 At Least Once 更具体的方法来计算 Rhino Mocks 中的方法调用 有什么机制可以做到这一点吗 诀窍是使用 Repeat Times n 其中 n 是次数 令人惊讶的是 即使该方法的调
  • 模拟方法结果

    我正在尝试找到一种方法来伪造从另一个方法中调用的方法的结果 我有一个 LoadData 方法 它调用一个单独的助手来获取一些数据 然后它将对其进行转换 我有兴趣测试转换后的结果 所以我有这样的代码 public class MyClass
  • Rhino - 模拟类而不覆盖虚拟方法

    如果我正在模拟一个类 如下所示 有什么方法可以让模拟not重写虚拟方法 我知道我可以简单地删除 virtual 修饰符 但我实际上想稍后删除此方法的行为 换句话说 除了删除 virtual 修饰符之外 如何才能通过此测试 namespace
  • 单元测试错误“未将对象引用设置为对象的实例。”

    在我的控制器中 我想测试控制器是否正在调用存储库方法 这是方法控制器 HttpGet public ActionResult GetModulePropertyName string moduleTypeValue var temp mod
  • Rhino Mocks -GenerateStub 和GenerateMock 之间的区别[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 任何犀牛专家都可以通过给出一个适当的例子来解释一下上述方法之间的区别吗 MockRepository类 Rhino Mocks 框架
  • 模拟迭代行为

    我有一个具有迭代行为的界面 但在 Rhinomocks 中模拟它时遇到了麻烦 示例接口和类是我的问题的一个非常简单的版本 每次调用 LineReader Read 时 LineReader CurrentLine 都应返回不同的值 下一行
  • 断言某个方法仅被调用一次

    我想断言一个方法只被调用一次 我正在使用 RhinoMocks 3 5 这是我认为可行的 Test public void just once var key id of something var source MockRepositor
  • 使用 UnitofWork 模式的 Rhino 模拟实体框架不起作用

    这是我第一次尝试这样的事情 所以希望这很简单 我创建了一个使用实体框架访问数据库的 WCF 服务 我已经实施了一个工作单元接口 以便我的服务可以使用 EF 同时仍然可测试 这是我的服务 public class ProjectService

随机推荐

  • SwiftUI:minimumScaleFactor 未均匀应用于堆栈元素

    我有两段文本的水平堆栈 第二段以蓝色突出显示 它非常适合 iPhone XR 但在较小的设备 如 iPhone X 上时 文本不适合 我尝试通过使用minimumScaleFactor来缩放文本来解决这个问题 然而 SwiftUI 似乎决定
  • 重温PHP中如何从多维数组中删除重复值

    如何从 PHP 中的多维数组中删除重复值 初始数组 array 0 gt array following userid gt 88 1 gt array following userid gt 89 2 gt array following
  • 判断一系列日期是否覆盖一个区间

    我有两个对象日历 Calendar startCalendar new GregorianCalendar 2013 0 31 Calendar endCalendar new GregorianCalendar 我想知道上面列出的两个日期
  • HTTP 处理程序与 HTTP 模块

    有人能用不到两句话解释两者之间的区别吗 是的 我知道谷歌可以提供数百个答案 但不能提供二分之一的清晰句子 HttpHandler 是请求队列的去向 HttpModule是沿途的一个站
  • CodePipeline 构建规范和多个构建操作

    一个简单的构建规范 例如 version 0 2 phases install commands cd lambda src npm install aws cloudformation package template file lamb
  • mod_rewrite 的小问题

    我有一个分类广告网站 每个分类最初都是这样链接的 mydomain com ad php ad id Bmw M3 M tech 113620829 我应该使用什么 RewriteRule 来使此链接看起来像 mydomain com Bm
  • Node js 向 Gmail 发送会议/日历邀请

    我正在尝试使用 Node js 发送日历邀请 我已经尝试过 nodemailer 库 并且正在发送带有日历邀请的邮件 就像参考this https stackoverflow com questions 45097141 nodemaile
  • ASP.NET - Unity - 从外部配置文件读取配置部分

    我想将 Unity 集成到我的应用程序中 并且希望它使用外部配置文件 Unity初始化代码是 var fileMap new ExeConfigurationFileMap ExeConfigFilename unity config Sy
  • 将本地图像添加到 IJulia 笔记本

    如何将本地图像添加到 IJulia 笔记本 该图像与 IPYNB 文件位于同一本地网络文件夹中 该文件夹可通过符号链接访问 我尝试过相对文件名和绝对文件名 img src test png alt Image Test style widt
  • PHP 中变量周围的括号有什么作用?

    我在旧平台上使用 PHP 5 3 中的 ImageMagick 我偶然发现了一段代码 当变量周围使用括号时 该代码不起作用 但当删除这些括号时 该代码却起作用 变量两边的括号有什么作用 im new imagick im gt readIm
  • 在哪里可以找到 jdk 7 中的 jnlp api jar? [复制]

    这个问题在这里已经有答案了 可能的重复 在 JDK 1 7 中找不到 jnlp jar https stackoverflow com questions 10830317 cant find jnlp jar in jdk 1 7 对于j
  • 转换具有相同名称但不同扩展名的图像

    例如 我有两个文件 aaa jpg with cat aaa png with dog 正如您所看到的 尽管名称相同 但图像是不同的 我想将这些图像转换为一种格式 这项任务的基本尝试是 mogrify format jpg png 但由于显
  • 如何捕获flask_restful应用程序中引发的所有异常

    我确实有简单的 Restful 应用程序与 Flask Restful from flask import Flask from flask restful import Api app Flask name api Api app api
  • Ncurses:如何刷新菜单而不丢失当前位置?

    如何在不丢失当前位置的情况下重新加载菜单中的数据 例如 当用户 选择 某个项目时 执行的操作会更改数据 更新项目 删除项目或向菜单添加新项目 我想重新加载菜单 但仍将光标保留在刚刚选择的项目上 最好的方法是什么 作为参考 这个问题似乎非常接
  • 如何将用户表连接到角色表(使用表user_roles)?

    我需要创建一个用于用户身份验证的基本数据库 到目前为止 每个用户都有一个名称 密码和角色 我在互联网上的某个地方找到了这个 看起来很有希望 create table if not exists users id int unsigned n
  • 使用 Windows 服务运行 UI

    我计划使用 Windows 服务 用 C 编写 运行启动 监视 UI 应用程序 选中 允许服务与桌面交互 这在 Windows XP 上工作正常 但在 Windows 7 上弹出如下所示 当我点击查看消息时 整个屏幕一片空白 只显示 UI
  • 列出所有已部署的休息端点(spring-boot、jersey)

    是否可以使用 Spring Boot 列出我配置的所有休息端点 执行器在启动时列出所有现有路径 我想要类似的自定义服务 这样我就可以在启动时检查所有路径是否配置正确 并使用此信息进行客户端调用 我该怎么做呢 我用 Path GET我的服务
  • Azure DevOps 中是否有“服务帐户用户”概念

    我正在使用自动化工作Azure 开发运营并想知道是否有一种简单的方法可以服务用户帐户即信用永不过期并且可以访问的帐户Azure 开发运营只能通过API 我想在我的自动化脚本中重复使用此用户凭据 但不希望用户可以通过 UI 登录 Azure
  • 如何判断Control是否有Text属性

    当我迭代表单上的一堆不同控件时 而不是尝试访问 Text 属性 String text String Empty foreach Control control in this Controls try text control Text
  • 在 Expect.Call 中设置对象的属性

    很难解释我正在寻找的内容 但我的例子应该可以澄清它 我有下一个代码 var schedule ScheduleUtil CreateScheduleDto user user Expect Call gt scheduleRepositor