我有Windows窗体应用程序(程序集名为“ WindowsFormsApplication1 ”),我有单元测试项目(程序集名为“ UnitTestProject2 ”)。
我将InternalsVisibleTo属性添加到“WindowsFormsApplication1 \ AssemblyInfo.cs”之类
refresh()
使用Microsoft Fakes(VS 2012 Ultimate)从“WindowsFormsApplication1”访问内部类到单元测试应用程序“UnitTestProject2”。
我可以直接使用单元测试项目中的命名空间来访问内部类。 但我无法访问该内部类的Fakes - Shims和Stubs。 我为InternalsVisibleTo属性尝试了不同的组合:
[assembly: InternalsVisibleTo("UnitTestProject2")]
等。但都没有用。
任何人都知道出了什么问题以及如何解决它?
答案 0 :(得分:3)
假设您正在测试的程序集是' WindowsFormsApplication1',那么您必须添加2个InternalsVisibleTo属性:
[assembly: InternalsVisibleTo("WindowsFormsApplication1.Fakes")]
[assembly: InternalsVisibleTo("UnitTestProject2")]
MSDN:
Fakes代码生成器将为生成的Fakes程序集可见的类型生成填充类型和存根类型。要使Fakes和测试程序集可以看到内部类型的填充程序集,请将InternalsVisibleToAttribute属性添加到填充程序集代码中,以便为生成的Fakes程序集和测试程序集提供可见性。