visual-studio-2012 - 如何使用 Fakes Framework 垫片模拟/隔离 VS 2012 中的内部类?

标签 visual-studio-2012 internalsvisibleto microsoft-fakes

所以,问题是我的程序集中有一堆内部类,供我要测试的类使用。由于访问器已从 VS2012 中删除,我可以使用 [InternalsVisibleTo]这很好用……除非我尝试改变我的内部类,否则它们对 Fakes 框架不可见。我还应该注意,我正在处理的特定类是具有静态方法的静态类,并且我真的不想重构所有内容以使用接口(interface)(和使用 stub ),因为组织中对这种重构级别的抵制。

有没有办法让这些内部成员在 Visual Studio 2012 中的 shims 上下文中可用,而无需诉诸接口(interface)(字面意思)一切?

最佳答案

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

其中说:

The Fakes code generator will generate shim types and stub types for types that are visible to the generated Fakes assembly. To make internal types of a shimmed assembly visible to Fakes and your test assembly, add InternalsVisibleToAttribute attributes to the shimmed assembly code that gives visibility to the generated Fakes assembly and to the test assembly.



所以你需要一个 InternalsVisibleToAttribute授予您的测试程序集访问目标程序集的内部类型的权限。换句话说:
[assembly: InternalsVisibleTo("TargetAssembly.Fakes")]
[assembly: InternalsVisibleTo("TestAssembly")]

关于visual-studio-2012 - 如何使用 Fakes Framework 垫片模拟/隔离 VS 2012 中的内部类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13573112/

相关文章:

.net - MSB3270 : Mismatch between the processor architecture - Fakes Framework

css - Bootstrap ,导航菜单下的白线,事件链接

c# - 使特定的内部功能对另一个程序集可见(即并非所有内部都可见)

c# - 如何在 VS 2012 Professional RC 中添加假程序集?

rhino-mocks - 使用 RhinoMocks 模拟内部类

c# - InternalsVisibleTo 不起作用

visual-studio-2012 - 与 2012 年 : Shims compile 相比

c# - 如何在源代码管理资源管理器 TFS 2012 中强制手动合并?

c# - Visual Studio 2012 测试类别层次结构(测试资源管理器)

c++ - 如何在 Windows 7 上使用 DirectX 11 和 Visual Studio 2015 工具集 v140