2009-06-18 11 views
4

私はRhinoMockをモックしようとしている内部クラスをたくさん持っています。私はassemblyinfo.csに次の行を追加しました:内部クラスをRhinoMockでモックする

[assembly:InternalsVisibleTo(RhinoMocks.StrongName)] 

しかし、まだこのは私が内部クラスをモックすることはできません。タイプ 'SomeType504cf40be6b444abfd417dccf5d6752' アセンブリから 「DynamicProxyGenAssembly2、 バージョン= 0.0.0.0、文化に方法 'のsomeMethod':

MyTests.SomeTest: System.TypeLoadException私はNUnitのから、次のエラーメッセージが表示されます=ニュートラル、 PublicKeyToken = null 'は アセンブリから表示されない メソッドをオーバーライドしています。

私はRhinoMocksの 'merged'バージョンを使用しています(ダウンロードオプション 'Castleアセンブリ'ではなく)。キャッスルがどのようにRhinoMockに統合されたのかわかりませんが、内部をRhinoMockで見えるようにするべきではありません。同様にCastle(Rhino.Mocks.dllの一部です)に表示されます。

答えて

10

そして私は最終的に私が行うために必要なすべてがAssemblyInfo.csに以下を追加したことをいくつかの時間を持って働い:

+0

+1に記載されているように内部を城のアセンブリに表示する必要があります。私はMoqと同じエラーがありました。彼らのwikiは、PublicKeyトークンを含む 'InternalsVisibleTo()'を表示します。トークンが削除されました。 –

2

RhinoMockがダイナミックプロキシを使用してアセンブリを動的に生成するという問題点があります。 RhinoMockに内部を見えるようにすることは役に立ちません。私が見るあなたの問題に対する唯一の解決策は、次のとおりです。

  1. あなたが公にしようとするクラスを作りましょう。
  2. テストプロジェクトアセンブリでモッククラスを手作業で記述し、InternalVisibleTo属性を変更してテストアセンブリのアクセスを許可します。
+0

Rhinoが生成する城動的プロキシを使用して、これは、間違っていますプロキシあなたはちょうど他の答え –

関連する問題