どのように私はNMock2を使用して内部インタフェースを模擬することができますか?
-
25-09-2019 - |
質問
私はこれをしようとした場合、私はちょうど例外を取得します:
System.TypeLoadException : Access is denied: 'Namespace.IInternalInterface'.
インターフェイスを公開作ることは受け入れ可能な解決策ではありません。私はそれをテストするために、私のAPIの可視性を変更する必要はありません。
解決 2
私はこの答えを見つけました
NMock2、(および他のモックフレームワーク)。動的に生成されたアセンブリ内のモックオブジェクトを作成します。モックオブジェクトを作成するためのモックフレームワークのために、内部は、これらのアセンブリを表示する必要があります。
ただ、モジュールの下にテストのためのAssemblyInfo.csクラスに次の宣言を追加します:
// Allow unit test and mock assemblies to see internal members.
[assembly: InternalsVisibleTo("MyAssembly.UnitTest")]
[assembly: InternalsVisibleTo("NMock2")]
[assembly: InternalsVisibleTo("Mocks")]
[assembly: InternalsVisibleTo("MockObjects")]
他のヒント
発見し、解決策を文書化します。
http://www.rhyous.com/2012/05 / 03 / nmock2内部インターフェース/ の
NMock2新しいバージョンのことが判明した(私はここでそれを得た: NMock2プロジェクトを)のみニーズ1、それは違います。
[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]
所属していません StackOverflow