Rhino 模拟抽象类而不模拟其虚拟方法?

2023-11-26

我可以执行存在于已使用 Rhino Mocks 模拟的抽象类上的虚拟方法的主体吗?

需要明确的是,我并不是想模拟虚拟方法的行为。我正在尝试/测试/虚拟方法(在模拟类上)。

这个想法是对 Rhino Mocks 的公然滥用吗?


是的,那应该绝对没问题。我不能说我已经尝试过,但如果失败的话我会感到非常惊讶。

编辑:我怀疑你想要PartialMock方法。这是一个例子:

using System;
using Rhino.Mocks;

public abstract class Abstract
{
    public virtual int Foo()
    {
        return Bar() * 2;
    }

    public abstract int Bar();        
}

class Test
{
    static void Main(string[] args)
    {
        MockRepository repository = new MockRepository();
        Abstract mock = repository.PartialMock<Abstract>();

        using (repository.Record())
        {
            Expect.Call(mock.Bar()).Return(5);
        }

        Console.WriteLine(mock.Foo()); // Prints 10
    }
}

编辑:或者在我第一次尝试 AAA 时:

using System;
using Rhino.Mocks;

public abstract class Abstract
{
    public virtual int Foo()
    {
        return Bar() * 2;
    }

    public abstract int Bar();        
}

class Test
{
    static void Main(string[] args)
    {
        // Arrange
        Abstract mock = MockRepository.GeneratePartialMock<Abstract>();
        mock.Stub(action => action.Bar()).Return(5);

        // Act
        int result = mock.Foo();

        // Assert
        mock.AssertWasCalled(x => x.Bar());
        // And assert that result is 10...
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rhino 模拟抽象类而不模拟其虚拟方法? 的相关文章

  • 是否可以强制 XMLWriter 将元素写入单引号中?

    这是我的代码 var ptFirstName tboxFirstName Text writer WriteAttributeString first ptFirstName 请注意 即使我使用 ptFirstName 也会以双引号结束 p
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • UML类图:抽象方法和属性是这样写的吗?

    当我第一次为一个小型 C 项目创建 uml 类图时 我在属性方面遇到了一些麻烦 最后我只是将属性添加为变量 lt
  • 从父类调用子类方法

    a doStuff 方法是否可以在不编辑 A 类的情况下打印 B did stuff 如果是这样 我该怎么做 class Program static void Main string args A a new A B b new B a
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • C++ 子字符串返回错误结果

    我有这个字符串 std string date 20121020 我正在做 std cout lt lt Date lt lt date lt lt n std cout lt lt Year lt lt date substr 0 4 l
  • 将布尔参数传递给 SQL Server 存储过程

    我早些时候问过这个问题 我以为我找到了问题所在 但我没有 我在将布尔参数传递给存储过程时遇到问题 这是我的 C 代码 public bool upload false protected void showDate object sende
  • 指针问题(仅在发布版本中)

    不确定如何描述这一点 但我在这里 由于某种原因 当尝试创建我的游戏的发布版本进行测试时 它的敌人创建方面不起作用 Enemies e level1 3 e level1 0 Enemies sdlLib 500 2 3 128 250 32
  • 在 Visual Studio 2008 上设置预调试事件

    我想在 Visual Studio 中开始调试程序之前运行一个任务 我每次调试程序时都需要运行此任务 因此构建后事件还不够好 我查看了设置的 调试 选项卡 但没有这样的选项 有什么办法可以做到这一点吗 你唯一可以尝试的 IMO 就是尝试Co
  • 如果使用 SingleOrDefault() 并在数字列表中搜索不在列表中的数字,如何返回 null?

    使用查询正数列表时SingleOrDefault 当在列表中找不到数字时 如何返回 null 或像 1 这样的自定义值 而不是类型的默认值 在本例中为 0 你可以使用 var first theIntegers Cast
  • Cython 和类的构造函数

    我对 Cython 使用默认构造函数有疑问 我的 C 类 Node 如下 Node h class Node public Node std cerr lt lt calling no arg constructor lt lt std e
  • 将自定义元数据添加到 jpeg 文件

    我正在开发一个图像处理项目 C 我需要在处理完成后将自定义元数据写入 jpeg 文件 我怎样才能做到这一点 有没有可用的图书馆可以做到这一点 如果您正在谈论 EXIF 元数据 您可能需要查看exiv2 http www exiv2 org
  • for循环中计数器变量的范围是多少?

    我在 Visual Studio 2008 中收到以下错误 Error 1 A local variable named i cannot be declared in this scope because it would give a
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • C++ 复制初始化和直接初始化,奇怪的情况

    在继续阅读本文之前 请阅读在 C 中 复制初始化和直接初始化之间有区别吗 https stackoverflow com questions 1051379 is there a difference in c between copy i
  • 如何使我的表单标题栏遵循 Windows 深色主题?

    我已经下载了Windows 10更新包括黑暗主题 文件资源管理器等都是深色主题 但是当我创建自己的 C 表单应用程序时 标题栏是亮白色的 如何使我自己的桌面应用程序遵循我在 Windows 中设置的深色主题 你需要调用DwmSetWindo
  • C++ fmt 库,仅使用格式说明符格式化单个参数

    使用 C fmt 库 并给定一个裸格式说明符 有没有办法使用它来格式化单个参数 example std string str magic format 2f 1 23 current method template
  • 控制到达非 void 函数末尾 -wreturn-type

    这是查找四个数字中的最大值的代码 include
  • 将文本叠加在图像背景上并转换为 PDF

    使用 NET 我想以编程方式创建一个 PDF 它仅包含一个背景图像 其上有两个具有不同字体和位置的标签 我已阅读过有关现有 PDF 库的信息 但不知道 如果适用 哪一个对于如此简单的任务来说最简单 有人愿意指导我吗 P D 我不想使用生成的
  • C 中的异或运算符

    在进行按位操作时 我在确定何时使用 XOR 运算符时遇到一些困难 按位与和或非常简单 当您想要屏蔽位时 请使用按位 AND 常见用例是 IP 寻址和子网掩码 当您想要打开位时 请使用包含或 然而 XOR 总是让我明白 我觉得如果在面试中被问

随机推荐

  • 无法使用 App Check 为 Firebase 存储生成调试令牌

    我想在我的 Android Flutter 应用程序中包含 Firebase 应用程序检查 Firebase 存储 因此我遵循了官方文档 https firebase flutter dev docs app check usage 这是我
  • 编写 UDF 在 Java 中的 Map 中查找,给出不支持的文字类型类 java.util.HashMap

    我正在使用 java8 和 Spark v2 4 1 我正在尝试使用 UDF 使用 Map 进行查找 如下所示 Data code1 code2 code3 1 7 5 2 7 4 3 7 3 4 7 2 5 7 1 预期数据 code1
  • 背景图像 + rgba() 在 IE 7-8 中具有回退功能

    我有一个具有背景图像和透明背景颜色的元素 我希望 IE 恢复为纯色 element background url image png background color 000 should be IE fallback background
  • 如何在 Powershell 中有效地填充数组

    我想使用 Powershell 尽快用相同的整数值填充动态数组 Measure Command 显示我的系统需要 7 秒才能将其填满 我当前的代码 片段 如下所示 myArray length 16385 for i 1 i le leng
  • Laravel - 传递多个变量来查看

    我有这个网站 它的一个页面从数据库中创建了一个简单的人员列表 我需要将一个特定的人添加到我可以访问的变量中 我该如何修改return view gt with persons persons 行还将 ms 变量传递给视图 function
  • 使用 VB 或 Python 编写 Fruityloops 或 propellerheads 推理脚本?

    我的 Windows PC 上同时安装了 Fruityloops 和 Propellerheads Reason 软件合成器 我可以通过 Visual Basic 或 Python 获取这些内容并编写脚本吗 或者至少从代码发送 Midi 消
  • 将 AWS SQS 连接到 Apache-Flink

    为什么 AWS SQS 不是默认连接器阿帕奇 弗林克 这样做有一些技术限制吗 或者只是有什么事情没有完成 我想实现这个 任何指示将不胜感激 对于原始问题的答案可能为时已晚 我使用 SQS 的 Java 消息服务库编写了一个 SQS 使用者作
  • 删除/隐藏添加到购物车消息的 Woocommerce,但保留/显示已应用优惠券的消息

    我正在尝试删除或隐藏 WooCommerce 结帐页面顶部添加到购物车的消息 我已删除购物车页面 因此此消息显示在结帐页面上 我尝试将其添加到我的 CSS 中 woocommerce message display none 虽然这隐藏了我
  • 在多维数组中查找值并返回所有项目c#

    这就是问题所在 我定义了一个数组 如下所示 int Users new int 1000 3 它的数据将类似于 0 1 2 1 2 1 2 3 2 3 3 4 4 2 3 该数组根据我的脚本的需要使用 但我需要能够根据数组的维度之一过滤数组
  • 当操作栏中显示 EditText 时如何聚焦并显示软键盘?

    我使用 ActionBarSherlock 来创建 ActionBar 它有一个搜索按钮 显示AutoCompleteEditText SHOW AS COLLAPSIBLE ACTION VIEW 当点击搜索按钮时 EditText显示了
  • 如何在向下滚动时隐藏div,然后显示向上滚动

    我想说明如何显示和隐藏菜单 如图所示 您可以在下图中看到有一个树部分 第一部分 当您打开页面时 右下侧菜单仍然会显示 当您向下滚动时 菜单将淡入 当您向上滚动时 菜单将淡出 facebook 和 tumblr 就是这样做的 我想了解他们如何
  • 在 C# 中预验证 Web 服务请求

    我在 C 中调用 Web 服务请求时遇到问题 服务和请求在 Soap UI 中工作正常 启用了 抢先验证 选项 文件 首选项 HTTP 设置 如果未启用此设置 服务将返回 Java Lang NullPointerException 我遇到
  • 从仅给定 Type 实例的 MEF 容器中获取导出

    我有一个场景 我必须从 CompositionContainer 实例导出 但我只有一个类型可以使用 我不知道编译时的类型 因此无法以正常的通用方式检索导出的对象 通常你会这样做 container GetExportedObject
  • Android媒体录制错误启动失败-19 runTimeException

    我的媒体录制遇到问题 我正在尝试使用前置摄像头进行录制 这给了我一个错误 但预览正常 每当我使用后置摄像头时 一切都正常 我认为这很奇怪 问题可能是什么以及解决方案是什么 我的代码和错误如下所示 编辑 使用 VGA 前置摄像头录制似乎不起作
  • Azure Webjobs 的命令行参数

    我正在将之前计划并通过 Quartz Net 运行的几个作业迁移到 Azure Webjobs 使用 Quartz Net 允许我在同一个项目中拥有所有 非常紧凑 的作业类 作为初始化调度程序的控制台程序入口点 现在我想保留该结构 而不必为
  • 在多行命令内的 Bash 脚本中进行注释

    如何对脚本中以下各行的每一行进行注释 cat MYSQLDUMP sed 1d tr n sed e s asbi 0 9 g e d e s g e d sed n e p e print value option id p sed e
  • 如何从 udp 套接字获取您自己的(本地)IP 地址 (C/C++)

    您有多个网络适配器 将 UDP 套接字绑定到本地端口 而不指定地址 在其中一个适配器上接收数据包 如何获取接收数据包的适配器的本地 IP 地址 问题是 接收器适配器的 IP 地址是什么 不是我们在 中获得的发件人地址 receive fro
  • R:使用 lapply 添加新列

    我想向列表的每个数据帧添加一列 其中两列 col1 和 col2 的值连接在一起 create new column original list lt lapply original list cbind new column c add
  • 在 jenkins 作业中使用 git repo 名称作为 ENV 变量

    我正在尝试找出一种方法来将 jenkins 作业中的远程 git 项目名称作为环境变量获取 当 jenkins 克隆存储库时 我想使用项目名称作为 本地子目录名称 有没有办法做到这一点 也许像 GIT REPO NAME 我知道有 GIT
  • Rhino 模拟抽象类而不模拟其虚拟方法?

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