Rhino Mocks:当我的参数之一是 Expression> 时,我可以使用 Stub() 吗?

2024-01-11

我的接口上有一个如下所示的方法,我想用 Rhino Mocks 对其进行存根:

TValue GetPropertyOfExistingObject<TValue>(long id, Expression<Func<T, TValue>> propertyExpression);

我的存根代码如下所示:

var service = MockRepository.GenerateStub<IQuoteService>();
service.Stub(s => s.GetPropertyOfExistingObject(1, q => q.QuoteNumber)).Return(1234);

请注意,该方法中的参数之一是Expression<Func<T1, T2>>,并且此存根未返回指定的值。我知道我可以通过使用 WhenCalled() 来做到这一点,但我想知道 Stub() 是否应该与表达式参数一起使用,或者我是否只是做错了什么。


您可以创建一个方法来计算两个表达式之间的相等性:

public class ExpressionMatcher
{
    public static Expression<Action<T>> Matches<T>(Expression<Action<T>> action)
    {
        var methodName = ((MethodCallExpression) action.Body).Method.Name;
        return Arg<Expression<Action<T>>>.Matches(a => ((MethodCallExpression)a.Body).Method.Name.Equals(methodName));
    }
}

然后更改存根语句以将表达式包装在对表达式匹配器的调用中:

service.Stub(s => s.GetPropertyOfExistingObject(Arg<int>.Is.Equal(1), ExpressionMatcher.Matches<Quote>(q => q.QuoteNumber))).Return(1234);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rhino Mocks:当我的参数之一是 Expression> 时,我可以使用 Stub() 吗? 的相关文章

  • 为什么我无法更改 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
  • 如何使用 NUnit 和 Rhino Mocks 模拟 HttpContext.Current.Items

    我在用着NUnit and RhinoMocks用于 WebApi 项目的单元测试 我正在尝试编写一个测试方法 该方法应该向 HttpContext Current Items 添加一个项目 public override void OnA
  • 如何模拟 IQueryable

    我正在创建一个公开 IQueryable 的存储库 为我的单元测试模拟这个的最佳方法是什么 由于我将 RhinoMocks 用于其余的模拟对象 因此我尝试执行以下操作 IQueryable
  • 如何为异步方法编写单元测试用例?

    我想通过模拟依赖项来编写单元测试用例 整体流程如下 我们有一个WorklistLoader它有一个异步方法LoadWorklistItemsAsync 为了完成这个任务WorklistLoader依赖于下层 API 我想模拟 QueryMa
  • C# 中的模拟文件 IO 静态类

    我是单元测试的新手 我需要模拟 System IO 命名空间中的 File 静态类 我正在使用 Rhinomock 实现此目的的最佳方法是什么 可以说我需要模拟 File Exists File Delete 您无法使用 Rhino 模拟来
  • .NET 上 C# 的模拟工具 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我是 C NET 新手 但我从事 TDD 已经有一段时间了 我想知道在 C 中编写测试时可用于模拟对象
  • Rhino Mocks 异常 Expect #1 Actual #0 :需要帮助

    我已经对此进行了搜索 它似乎是一个包罗万象的东西 不幸的是我读过的所有内容都无助于弄清楚它 这是课程 public interface IMockInterface MockClass MockedMethod MockClass Mock
  • Rhino Mocks:Repeat.Once() 不起作用?

    谁能告诉我为什么下面的测试没有失败 Test public void uhh what var a MockRepository GenerateMock
  • 无法使用 Rhino Mocks 模拟具有数组参数的构造函数的类

    我们无法在 RhinoMocks 中模拟此类 public class Service public Service Command commands public abstract class Command Code var mock
  • 在 Expect.Call 中设置对象的属性

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

    我正在尝试找到一种方法来伪造从另一个方法中调用的方法的结果 我有一个 LoadData 方法 它调用一个单独的助手来获取一些数据 然后它将对其进行转换 我有兴趣测试转换后的结果 所以我有这样的代码 public class MyClass
  • Rhino Mocks -GenerateStub 和GenerateMock 之间的区别[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 任何犀牛专家都可以通过给出一个适当的例子来解释一下上述方法之间的区别吗 MockRepository类 Rhino Mocks 框架
  • rhino mocks:如何构建一个假套接字?

    我尝试使用以下代码构建一个假套接字进行测试 var socket MockRepository GenerateStub
  • 断言某个方法仅被调用一次

    我想断言一个方法只被调用一次 我正在使用 RhinoMocks 3 5 这是我认为可行的 Test public void just once var key id of something var source MockRepositor
  • Rhino Mocks - 使用 Arg.Matches

    我有一个正在嘲笑的函数 它接受一个参数对象作为参数 我想根据对象中的值返回结果 我无法比较对象 因为 Equals 未被覆盖 我有以下代码 tourDal Stub x gt x GetById Arg
  • 如何测试抽象类的受保护抽象方法?

    我一直在研究测试名为的抽象类的最佳方法TabsActionFilter 我保证继承自的类TabsActionFilter将有一个名为GetCustomer 在实践中 这种设计似乎效果很好 我遇到的一些问题是弄清楚如何测试OnActionEx
  • 使用 Rhino Mocks 存根只读属性

    我有一个带有私有集属性的类 我想用犀牛模拟来消除它 但是 当我尝试执行此操作时 它会出现编译时错误 提示我无法设置只读属性 我是使用 Rhino Mocks 的新手 所以我一定在这里遗漏了一些东西 public Interface IFoo
  • 使用RhinoMocks,我如何断言调用了几种方法之一?

    考虑以下服务接口 public interface IServiceA void DoSomething string s void DoSomething string s bool b public interface IService

随机推荐

  • 在 Javascript 中克隆文件输入元素

    我有一个文件输入元素 需要在用户浏览并选择要上传的文件后进行克隆 我开始使用 obj cloneNode 一切正常 直到我尝试在 IE 中使用它 此后我尝试使用 jQuery 的克隆方法 如下所示 var tmp jQuery catego
  • Multipart._final 中的表单意外结束

    我有多个输入 当所有图像输入字段都填满时 上传工作正常 但如果其中任何一个为空 它会在我的服务器端引发错误 Unexpected end of form at mutipart 这是客户端 const handelSubmit e gt e
  • 如何使用 Unity 依赖注入 Web API 实现策略/外观模式

    如何告诉Unity WebApi依赖注入框架 在正确的控制器中注入正确的类 DI 项目容器 public class UnityContainerConfig private static IUnityContainer unityCont
  • PowerShell 3.0 中 [ordered] 的正确名称是什么?

    在 PowerShell 中 您可以使用方括号指定类型 如下所示 PS C Users zippy gt int IsPublic IsSerial Name BaseType True True Int32 System ValueTyp
  • 如何发送ctrl+z

    How do I convert ctrl z to a string 我将此作为 AT 命令发送到该计算机的连接设备 Basically I just to put some chars in a string and ctrl z in
  • GridView 丢失了对非索引位置中的项目的跟踪,并且许多项目不再显示

    我正在使用 UWP 应用程序FileInformationFactory检索文件对象的虚拟化向量 该向量被转换为FileInformation并显示在GridView 我想查询插入笔记本电脑的 SD 卡上的文件夹并比较该文件夹的虚拟化情况G
  • 恢复到特定提交而不丢失历史记录

    我知道这类问题有很多重复项 但我想打开一个新问题 因为我没有在所有其他问题中找到按照我想要的方式执行此操作的最佳方法的解释 我知道我可以通过执行以下操作来恢复并保留历史记录 git reset soft c14809fa 我想恢复devel
  • Angular2:如何在一段时间后淡出显示在Click上的box-msg

    可能是一个愚蠢的问题 但我是新手angular并且仍在学习 单击按钮时显示一条成功消息 我需要在几秒钟后淡出该消息 div class alert alert success box msg strong Link Generated st
  • 标签文本更新期间 UIImageView 位置重置

    这里发生的问题真的很奇怪 在 iOS 8 中使用 XCode 我有一个简单的 UIImageView 当我单击时它会在屏幕上移动 没问题 效果很好 我只有一个简单的方法来更新特定标签 基于一个名为 StrikesLeft 的 int 这是我
  • 添加到 UIWindow 的 UIView 中的方向

    我有一个 UIView 它应该覆盖整个设备 UIWindow 以支持我正在使用核心动画执行的图像放大 缩小效果 其中用户点击 UITableViewCell 上的按钮 然后我缩放关联的图像 缩放执行完美 我无法弄清楚为什么即使设备处于横向状
  • Ionic Events 替换为 Angular Observables

    我了解 Ionic 事件将在下一个版本中被弃用 目前 我使用事件从子组件执行父页面中的函数 这是一个例子 在我的主页中 它订阅了要刷新的事件 constructor this eventFormRefresh obj gt this fet
  • windows中_chdir和SetCurrentDirectory有什么区别?

    我应该选择其中之一而不是其他有什么区别吗 它们实现相同的结果但属于不同的API 因此它们返回结果和报告错误的方式不同 如果您已经在使用任一 API 中的其他例程 请选择该 API 如果不是 SetCurrentDirectory 更 Win
  • 当游戏对象触发触发器时在 Unity 控制台中打印消息? Unity5/2D

    我正在为学校制作一个 游戏 我需要统计选票 我使用 Unity 让角色跳上按钮来计票并继续下一个问题 这是我到目前为止所拥有的 using UnityEngine using System Collections public class
  • facecolor = 'none'(空圆圈)无法使用seaborn和.map

    我有以下代码 我试图在同一个图上绘制两组数据 标记为空圆圈 我希望在下面的地图函数中包含 facecolor none 来完成此任务 但它似乎不起作用 我能得到的最接近的是在红色和蓝色黑点周围有红色圆圈 x1 np random randn
  • 在 R Shiny 中渲染时如何将表格单元格扩展到多列?

    我有一个值的数据框 我试图将其渲染为 R Shiny 中的表格 我想要扩展某些值以占用多列 就像使用 HTML rowspan 属性一样 但是 如果我要这样做 我必须从头开始创建整个表 并且我更喜欢使用 DT 库来轻松地从我的数据表进行转换
  • 访问另一个 .cpp 文件中的 .cpp 文件中定义的全局变量[重复]

    这个问题在这里已经有答案了 考虑以下场景 我的文件 cpp const int myVar 0 全局变量 另一个文件 cpp void myFun std cout lt lt myVar compiler error Undefined
  • EntityFramework 转换问题

    我正在使用 LinqKit 中的 PredicateBuilder 构建查询 它很棒并且正是我想要的 为了使我的代码更具可重用性 表和视图 我创建了一个通用谓词构建器类 public class LocalPredicateBuilder
  • 如何更改数据表列顺序

    如何在 C 中更改数据表列顺序 Example 我创建的sql表类型顺序是Qty Unit Id 但在程序中DataTable顺序是Id Qty Unit 在代码后面 我直接将DataTable传递给sql表类型 因此表顺序不同 DataT
  • Grails 域类自定义验证器

    我有限制 所以不能超过ConfigurationHolder config support reminder web person max存储的对象 我没有找到如何添加与特定属性无关的验证器 所以目前我是这样实现的 你们有什么想法如何让它变
  • Rhino Mocks:当我的参数之一是 Expression> 时,我可以使用 Stub() 吗?

    我的接口上有一个如下所示的方法 我想用 Rhino Mocks 对其进行存根 TValue GetPropertyOfExistingObject