所以,问题是我的程序集中有一堆内部类,由我想要测试的类使用。由于访问器已从 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(使用前将#替换为@)