如何使用 Fakes Framework shims 模拟/隔离 VS 2012 中的内部类?

2024-01-08

所以,问题是我的程序集中有一堆内部类,由我想要测试的类使用。由于访问器已从 VS2012 中删除,我可以使用[InternalsVisibleTo]这非常有效......除了当我尝试 shimify 我的内部类时,它们对 Fakes 框架不可见。我还应该注意,我正在处理的特定类是具有静态方法的静态类,并且我真的不想重构所有内容以使用接口(和使用存根),因为组织中对这种级别的重构存在阻力。

有没有一种方法可以使这些内部成员可由 Visual Studio 2012 中的 shims 上下文使用,而无需诉诸接口(字面意思)所有内容?


下一页描述了如何使内部类型对生成的 fakes 程序集可见。http://msdn.microsoft.com/en-us/library/hh708916.aspx#bkmk_internal_types http://msdn.microsoft.com/en-us/library/hh708916.aspx#bkmk_internal_types

其中说:

Fakes 代码生成器将为生成的 Fakes 程序集可见的类型生成垫片类型和存根类型。要使填充组件的内部类型对 Fakes 和您的测试组件可见,请添加InternalsVisibleToAttribute填充的汇编代码的属性,使生成的 Fakes 程序集和测试程序集可见。

所以你需要一个InternalsVisibleToAttribute授予您的测试程序集对目标程序集内部类型的访问权限。换句话说:

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

如何使用 Fakes Framework shims 模拟/隔离 VS 2012 中的内部类? 的相关文章

随机推荐

  • NodeJS 是否可以动态返回 SSL 证书?

    我想在我的 NodeJS 应用程序中动态返回 ssl 证书信息 我有两个域名链接到同一个节点应用程序 我只看到创建服务器时可以指定 ssl 设置 是否可以根据请求的 url 动态返回 ssl 证书 否则 如果我必须在另一个端口上创建第二个服
  • 如何从java中的.class文件获取实例

    坦白说 我什至不知道这是否可能 但我想做的就像下面这样 我通过终端中的 javac 命令从 ClassFile java 创建了一个类文件 然后我想从 java 文件或 class 文件获取一个实例 接下来 我在eclipse中制作了另一个
  • Angular Js 和 google api client.js (gapi)

    我花了一天的时间才让它发挥作用 所以我认为我的经验可能对某人有用 也许其他一些人会发现改进 所以我两天前就开始了 angularJS 我希望它与 Google Cloud Endpoints 一起创建后端接口 我的麻烦来了 gapi 的 j
  • 如何从 Main 调用 void 函数

    在我的程序中 我试图从 Main 调用 void 函数 但我无法找出正确的方法 Main位于最底部并且void GetTicketType char Choice 是我需要调用的函数cout门票类型 Purpose This program
  • 无法加载 tsc.ps1,因为该系统上禁用了运行脚本

    在 PowerShell 上 执行时收到错误消息tsc 这以前从未发生过 我不确定是否应该混合 PowerShell 安全设置来纠正此问题 例如基于此 PowerShell 表示 此系统上禁用了脚本执行 https stackoverflo
  • 如何检查数据库中是否存在 Oracle 视图?执行查询之前

    我需要知道一种在执行查询之前从 Java 桌面应用程序检查当前数据库中是否存在 Oracle 视图的方法 否则我会遇到很多麻烦 提前致谢 您随时可以查询Oracle数据字典 就像是 SELECT COUNT FROM all views W
  • Haskell 应用变压器的示例

    www haskell org 上的 wiki 告诉我们以下有关 Applicative Transformer 的信息 那么应用变压器在哪里呢 答案是 我们不需要适用函子的特殊变压器 因为它们可以以通用方式组合 http www hask
  • 为什么 MyPage._meta.get_field("title").verbose_name 会更改 Wagtail 中所有标题的标签?

    我的 Wagtail 项目中有几个应用程序 其中之一是 新闻 其中包含新闻 页面 我想在管理中将标题的标签 标题 覆盖为 标题 News meta get field title verbose name Headline 结果 我在所有应
  • 如何使用 Ant 运行类别/套件中的所有 JUnit 测试?

    我在类似于中描述的设置中使用 JUnit 类别和 ClassPathSuite这个答案 https stackoverflow com questions 2176570 how to run all tests belonging to
  • Android - 短信广播接收器

    我一直在努力得到this https stackoverflow com questions 1944102 android sms receiver not working程序可以工作 但到目前为止还没有运气 我找不到我哪里做错了 不知道
  • Clojure 更新映射多个值的惯用方法

    这可能很简单 但我就是无法克服它 我有一个嵌套映射的数据结构 如下所示 def m 1 1 2 2 5 3 10 2 1 2 2 50 3 25 3 1 42 2 23 3 4 我需要设置每个m i i 0 这在非函数式语言中很简单 但我无
  • 将 RSA 私钥导出到 RSAPublicKey 的命令行工具

    今天我发现有两种带有 PEM 格式标头的公钥格式 例如 X 509 SubjectPublicKeyInfo PEM header BEGIN PUBLIC KEY 对应于短标头形式 BEGIN PUBLIC KEY MIIBIjANBgk
  • 我可以在绕过加载命名空间的同时加载 RData 文件吗?

    假设我的一些用户无法更改他们的 R 环境 但我需要他们能够打开 RData 文件 这些环境文件需要加载一个包 确切地说是httpuv 我们不关心包 我们不需要它的功能 我们只需要获取数据 有没有办法强制 R 在加载 RData 文件时绕过加
  • Nim 中的价值与参考模型是什么?

    NOTE 我不是在问指针和引用之间的区别 对于这个问题来说它是完全无关的 我找不到明确说明的一件事 Nim 使用什么模型 就像 C 一样 你有价值观并且与new您创建指向数据的指针 在这种情况下 变量可以保存指向指向 数据的指针的指针 或者
  • Android 中的 BLE 广告

    我正在开发一个应用程序来在 android 中发送 BLE 广告包 我使用 AdvertiseData 和 AdverstiseSettings 类来生成广告数据包 但是当我执行 StartAdvertising 时 它总是给我一个错误代码
  • 从 ant 通过 sshexec 将密码传递给“su”命令

    有什么方法可以将密码传递给linux su 命令吗 我正在尝试使用 sshexec 和 Ant 自动化部署 作为其中的一部分 我需要执行 su 命令 但我找不到为其提供密码的方法 su 命令没有像 sudo 那样的 S 开关 我尝试在 ss
  • 调整表单大小,同时保持纵横比

    我有一个窗口 在其中显示图片 我希望用户能够调整此窗口的大小 但是 保持其与图像的宽高比相同 这样窗口上就不会出现大的空白区域 我在 OnResize 事件中尝试的是这样的 DragWidth Width DragHeight Height
  • 在 Google 应用程序脚本、电子表格中添加前导零

    我有一个主表 我正在从那里复制值并将其放入新选项卡中 但是当我在新选项卡中显示数字时 它会去掉前导零 例如 在我的主表中 我有 00734 我将其复制到新选项卡 它显示为 734 这是我用来复制值的代码 var values active
  • 如何为 Objective-C 和 Swift 制作一个通用的 iOS 库?

    我需要为 iOS 创建一个库 框架或静态库 我还没有决定 它可以在 Objective C 和 Swift 项目中使用 这样做的最佳方法是什么 在我看来 我有三个选择 用 Objective C 编写库并添加对 Swift 的支持 桥接头文
  • 如何使用 Fakes Framework shims 模拟/隔离 VS 2012 中的内部类?

    所以 问题是我的程序集中有一堆内部类 由我想要测试的类使用 由于访问器已从 VS2012 中删除 我可以使用 InternalsVisibleTo 这非常有效 除了当我尝试 shimify 我的内部类时 它们对 Fakes 框架不可见 我还