2017-02-27 14 views
0

私は(アセンブリ「WindowsFormsApplication1 『という名前の)Windowsフォームアプリケーションを持っていると私は(アセンブリ』 UnitTestProject2」という名前の)ユニットテストプロジェクトを持っています。マイクロソフト偽物内部クラスが生成されていないシム

私はInternalsVisibleToは、Microsoft偽物(VS 2012アルティメット)を使用してユニットテストアプリ "UnitTestProject2" に "WindowsFormsApplication1" から内部クラスにアクセスするには

[assembly: InternalsVisibleTo("UnitTestProject2")] 

よう"WindowsFormsApplication1 \ AssemblyInfo.cs"に属性を追加しました。

ユニットテストプロジェクトのネームスペースを使用して内部クラスに直接アクセスできます。 しかし、内部クラスのFakes - ShimsとStubsにはアクセスできません。 私はInternalsVisibleTo属性の異なる組み合わせてみました:

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

などが、どれも働きました。

誰が間違っていたのか、それを解決する方法を知っていますか?

参考文献:Ref1Ref2

答えて

1

は、あなたがテストしているアセンブリが「WindowsFormsApplication1」であると仮定し、その後、あなたは2を追加する必要がInternalsVisibleTo属性:

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

MSDN:

偽物コード・ジェネレータは、シムの種類とスタブタイプを生成します。生成されたFakesアセンブリで表示されるタイプの場合。 Shakesされたアセンブリの内部型をFakesおよびテストアセンブリに表示させるには、生成されたFakesアセンブリとテストアセンブリの可視性を提供するShimmedアセンブリコードにInternalsVisibleToAttribute属性を追加します。

関連する問題