Microsoft伪造内部类Shim未生成

时间:2017-02-27 16:05:53

标签: visual-studio-2012 microsoft-fakes internalsvisibleto

我有Windows窗体应用程序(程序集名为“ WindowsFormsApplication1 ”),我有单元测试项目(程序集名为“ UnitTestProject2 ”)。

我将InternalsVisibleTo属性添加到“WindowsFormsApplication1 \ AssemblyInfo.cs”之类

refresh()

使用Microsoft Fakes(VS 2012 Ultimate)从“WindowsFormsApplication1”访问内部类到单元测试应用程序“UnitTestProject2”。

我可以直接使用单元测试项目中的命名空间来访问内部类。 但我无法访问该内部类的Fakes - Shims和Stubs。 我为InternalsVisibleTo属性尝试了不同的组合:

[assembly: InternalsVisibleTo("UnitTestProject2")] 

等。但都没有用。

  

任何人都知道出了什么问题以及如何解决它?

仅供参考:参考 - Ref1Ref2

1 个答案:

答案 0 :(得分:3)

假设您正在测试的程序集是' WindowsFormsApplication1',那么您必须添加2个InternalsVisibleTo属性:

[assembly: InternalsVisibleTo("WindowsFormsApplication1.Fakes")]
[assembly: InternalsVisibleTo("UnitTestProject2")]

MSDN:

  

Fakes代码生成器将为生成的Fakes程序集可见的类型生成填充类型和存根类型。要使Fakes和测试程序集可以看到内部类型的填充程序集,请将InternalsVisibleToAttribute属性添加到填充程序集代码中,以便为生成的Fakes程序集和测试程序集提供可见性。