2017-02-27 47 views
0

我有Windows窗体应用程序(组装命名为“WindowsFormsApplication1‘),我有单元测试项目(组件名为’UnitTestProject2”)。微软正版正货的内部类垫片不会产生

我加入InternalsVisibleTo属性转换“WindowsFormsApplication1 \ AssemblyInfo.cs中”

[assembly: InternalsVisibleTo("UnitTestProject2")] 

要从 “WindowsFormsApplication1” 访问内部类成单元测试应用程序 “UnitTestProject2” 使用Microsoft伪造品(VS 2012极限)。

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

[assembly: InternalsVisibleTo("UnitTestProject2.Fakes")], 
[assembly: InternalsVisibleTo("UnitTestProject2.Tests")] 

等,但没有奏效。

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

供参考 - Ref1,Ref2

回答

1

假设你正在测试的组件“WindowsFormsApplication1”,那么你必须添加2 InternalsVisibleTo属性:

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

MSDN:

假货代码生成器将生成垫片类型和存根类型对于生成的Fakes组件可见的类型。要使填充程序集的内部类型对Fakes和您的测试程序集可见,请将InternalsVisibleToAttribute属性添加到提供给生成的Fakes程序集和测试程序集的可见程度的填充程序集代码。