私の質問はここで答えられました。
こんにちはネイサン
ここにはいくつかの異なるオプションがあります。
バッチを使用すると、AddExportedObjectメソッドを呼び出して、モックインスタンスをコンテナに追加できます。AddExportedObjectを使用すると、追加するインスタンスのコントラクトを指定できます。つまり、batch.AddExportedObject(mockLogger、typeof(ILogger));
また、モックインスタンスを追加できるようにするカスタムエクスポートプロバイダーを作成します。このリンクをたどると、私が使用するいくつかのユーティリティがあります。http://pastie.org/467842。その中には、FakeExportDefinitionsとともにFakeExportProviderがあります。FakeExportDefinitionsは、インスタンスの関数を取ります。これは、インスタンスを渡すことも、モックを直接作成することもできることを意味します。
使用法を説明するためのサンプルコードを次に示します。
protected override void Context()
{
MockCache = MockRepository.GenerateStub<ICache>();
var metadata = new Dictionary<string, object> ()
var cacheDefinition = new FakeInstanceExportDefinition(typeof(ICache), MockCache, metadata);
FakeProvider = new FakeExportProvider(f => ((FakeInstanceExportDefinition)f).Instance);
FakeProvider.AddExportDefinitions(cacheDefinition);
CacheExport = FakeProvider.GetExport<ICache>();
}
上記では、エクスポートプロバイダーに直接クエリを実行しています。ただし、私たちのコンテナでは、その構築時にエクスポートプロバイダーを渡すことができます。だからあなたはこれを行うことができます...
var container = new CompositionContainer(null、FakeProvider)。
HTHグレン