如何嘲笑/在VS 2012赝品框架垫片隔离内部类?(How to mock/isolate inte

2019-08-03 04:56发布

所以,问题是,我有一堆我组装的内部类是由我要测试的类中使用的。 由于存取已经从VS2012去掉,我很好用[InternalsVisibleTo]和除了当我尝试shimify我的内部类,伟大工程......,他们是不是假货框架可见。 我还应该注意到,我处理与特定类是静态方法静态类,我真的不希望重构的一切使用,因为电阻的接口(以及使用存根)在组织重构的那个级别。

有没有办法让这些内部成员可通过在Visual Studio 2012的垫片方面,而不诉诸接口(直译)的一切吗?

Answer 1:

以下页面介绍如何使内部类型可见的生成假货组装。 http://msdn.microsoft.com/en-us/library/hh708916.aspx#bkmk_internal_types

它说:

假货码发生器将生成垫片类型和存根类型为将所生成的伪造品组件可见的类型。 为了使内部类型的填隙组件可见假货和测试组件,添加InternalsVisibleToAttribute属性被匀汇编代码,让能见度生成的伪造品组装和测试组件。

[assembly: InternalsVisibleTo("FileSystem.Fakes")]
[assembly: InternalsVisibleTo("FileSystem.Tests")]

您还需要一个InternalsVisibleToAttribute允许从靶组件内部类型测试组件的访问。 换句话说,您需要:

[assembly: InternalsVisibleTo("TargetAssembly.Fakes")]
[assembly: InternalsVisibleTo("TestAssembly")]


文章来源: How to mock/isolate internal classes in VS 2012 with Fakes Framework shims?