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 上的模拟和存根有什么区别?

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

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

    我是 Mocking 框架的新手 并开始使用 RhinoMocks 来协助我的 MVC 应用程序单元测试 我在用着Scott Hanselmanns MVC 模拟助手协助模拟 HttpContext 我已经成功地 一段时间后 模拟了一些我需
  • Rhino 模拟抽象类而不模拟其虚拟方法?

    我可以执行存在于已使用 Rhino Mocks 模拟的抽象类上的虚拟方法的主体吗 需要明确的是 我并不是想模拟虚拟方法的行为 我正在尝试 测试 虚拟方法 在模拟类上 这个想法是对 Rhino Mocks 的公然滥用吗 是的 那应该绝对没问题
  • 如何使用 Rhino.Mocks 来模拟 ControllerContext

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

    我在用着NUnit and RhinoMocks用于 WebApi 项目的单元测试 我正在尝试编写一个测试方法 该方法应该向 HttpContext Current Items 添加一个项目 public override void OnA
  • 使用 Rhino 模拟抽象类的默认行为

    我对嘲笑还很陌生 所以这可能是我还没有意识到的事情 但我在任何地方都找不到一个好的例子 我试图断言默认情况下 任何从我的抽象类继承的类都会在构造函数中实例化一个集合 这是抽象类 public abstract class DataColle
  • 如何模拟 IQueryable

    我正在创建一个公开 IQueryable 的存储库 为我的单元测试模拟这个的最佳方法是什么 由于我将 RhinoMocks 用于其余的模拟对象 因此我尝试执行以下操作 IQueryable
  • 无法将 Rhino Mocks 3.5 添加到 Visual Studio 2010 中的 .NET 2.0 项目

    我们正在从 Dev Studio 2005 升级到 Dev Studio 2010 我在 Visual Studio 2010 中打开了 2005 解决方案 并完成了转换过程 使所有项目都以 NET 2 0 为目标 当我尝试构建项目时 我对
  • Moq to Rhino - 假部分存储库

    我得到了这个非常酷的 Moq 方法 它伪造了我的 GetService 看起来像这样 private Mock
  • 在 Expect.Call 中设置对象的属性

    很难解释我正在寻找的内容 但我的例子应该可以澄清它 我有下一个代码 var schedule ScheduleUtil CreateScheduleDto user user Expect Call gt scheduleRepositor
  • 如何在 VB.NET 中使用 RhinoMocks 设置只读属性的返回值?

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

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

    如果我正在模拟一个类 如下所示 有什么方法可以让模拟not重写虚拟方法 我知道我可以简单地删除 virtual 修饰符 但我实际上想稍后删除此方法的行为 换句话说 除了删除 virtual 修饰符之外 如何才能通过此测试 namespace
  • rhino mocks:如何构建一个假套接字?

    我尝试使用以下代码构建一个假套接字进行测试 var socket MockRepository GenerateStub
  • 模拟迭代行为

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

    在尝试实施第二个答案时上一个问题 https stackoverflow com questions 2887121 why does this asp net mvc unit test fail 我收到错误 我已经按照帖子所示实现了这些
  • Rhino Mocks - 使用 Arg.Matches

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

    我一直在研究测试名为的抽象类的最佳方法TabsActionFilter 我保证继承自的类TabsActionFilter将有一个名为GetCustomer 在实践中 这种设计似乎效果很好 我遇到的一些问题是弄清楚如何测试OnActionEx
  • 使用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