4

そのため、RhinoMocksでモックしようとしている内部クラスがたくさんあります。次の行をassemblyinfo.csに追加しました。

[assembly:InternalsVisibleTo(RhinoMocks.StrongName)]

ただし、これでも内部クラスをモックすることはできません。NUnitから次のエラーメッセージが表示されます。

MyTests.SomeTest:System.TypeLoadException:メソッド'SomeMethod' on type'SomeType504cf40be6b444abfd417dccf5d6752' from assembly'DynamicProxyGenAssembly2、Version = 0.0.0.0、Culture = neutral、PublicKeyToken = null'は、そのアセンブリからは見えないメソッドをオーバーライドしています。

「Castleアセンブリを使用したダウンロードオプション」ではなく、「マージされた」バージョンのRhinoMocksを使用していることに注意してください。CastleがどのようにRhinoMocksにマージされたかはわかりませんが、内部をRhinoMocksに表示するべきではなく、同様にCastle(Rhino.Mocks.dllの一部)に表示する必要がありますか?

4

2 に答える 2

12

そして、ようやく時間ができたので、AssemblyInfo.cs に以下を追加するだけでよいことがわかりました。

[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]
于 2009-08-03T08:42:11.563 に答える
1

問題は、RhinoMocksが動的プロキシを使用してアセンブリを動的に生成するという事実です。したがって、内部をRhinoMocksに表示しても役に立ちません。私が見るあなたの問題に対する唯一の可能な解決策は次のとおりです。

  1. モックしたいクラスを公開します。
  2. テストプロジェクトアセンブリに手動でモッククラスを記述し、InternalVisibleTo属性を変更して、テストアセンブリへのアクセスを許可します。
于 2009-06-18T07:37:44.677 に答える