2017-02-27 50 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程序集和測試程序集的可見程度的填充程序集代碼。