> <静的GenerateMockためSpring.NetとRhinoのモックの設定をアップSETING
-
23-08-2019 - |
質問
私はモックオブジェクトを生成するために、Rhinoのモックを使用できるようにSpring.Netの構成を設定トラブルを抱えています。私はGenerateMockが静的メソッドであることを認識し、私は設定で、工場出荷時のメソッドを使用する必要がありますが、私はちょうどそれが仕事を得ることができません。これは私が使用していた構成である。
<object id="exampleObject"
type="Rhino.Mocks.MockRepository, Rhino.Mocks"
factory-method="GenerateMock&lt;MyAssembly.MyInterface>" />
次に、(単体テストである)私のコードIは、使用中の
using (IApplicationContext ctx = ContextRegistry.GetContext()) {....}
が、私は次のようなエラーメッセージが表示されます:
System.Configuration.ConfigurationErrorsException: Error creating context 'spring.root': Could not load type from string value 'MyAssembly.MyInterface'. ---> System.TypeLoadException: Could not load type from string value 'MyAssembly.MyInterface'..
任意のアイデアなぜ私はエラーを取得するのでしょうか?
解決
実際にあなただけのジェネリック引数に型名ではなくアセンブリ名を指定します。それは、より良いお読みください。
factory-method="GenerateMock<[MyNamespace.MyInterface, MyAssembly]>"
の完全修飾型名を引用する角括弧に注意してください、あなたは、最近のナイトリービルドを取得する必要があります。
の完全修飾名は、CLRがあなたのタイプを含むアセンブリを見つけることができます。それ以外の場合は春のスキャンは、すでにその型名のためのアセンブリをロード。あなたのアセンブリがまだロードされていない場合、あなたが直面しているにErrorMessageを体験します。
他のヒント
サイのバージョンは、あなたが使用していたが、Spring.NETが正しくGenerateMockの引数の変数NRを解釈することはありませんので、これは(もはや動作していないよう皮肉った
わからないのparams のを... )。
これは、これを理解し、次の回避策を使用するように私に半日を要します:
<object id="Logger" type="Rhino.Mocks.MockRepository, Rhino.Mocks"
factory-method="GenerateMock<Core.Common.Logging.ILog>" >
<constructor-arg name="argumentsForConstructor">
<list element-type="System.Object">
</list>
</constructor-arg>
</object>
私は基本的に春がメソッドシグネチャを認識することとなるように、明示的にオブジェクトの空の配列を渡すために持っていた...
所属していません StackOverflow