Rhinoモックを使用してWCFサービスプロキシをモックする方法は?
7621 次
2 に答える
5
インターフェイスを実装するようにサービスを作成します。次に、クライアントでインターフェイスをモックするか、テストで使用するインターフェイスの偽の実装を作成できます。
于 2009-01-10T17:23:32.010 に答える
2
これは古い投稿であることは知っていますが、最近行ったものです。私のシナリオでは、Wcf サービスと対話するいくつかの受け入れテストがありますが、実際のサービスを使用したくありませんでした。私は実際にそれについてブログ投稿をしましたが、ここにローダウンがあります。
特定のオブジェクトの wcf サービスを作成するための静的クラス:
public static class MockServiceHostFactory
{
public static ServiceHost GenerateMockServiceHost<TMock>(TMock mock, Uri baseAddress, string endpointAddress)
{
var serviceHost = new ServiceHost(mock, new[] { baseAddress });
serviceHost.Description.Behaviors.Find<ServiceDebugBehavior>().IncludeExceptionDetailInFaults = true;
serviceHost.Description.Behaviors.Find<ServiceBehaviorAttribute>().InstanceContextMode = InstanceContextMode.Single;
serviceHost.AddServiceEndpoint(typeof(TMock), new BasicHttpBinding(), endpointAddress);
return serviceHost;
}
}
モックを作成し、それを wcf サービスとして使用する:
Castle.DynamicProxy.Generators.AttributesToAvoidReplicating.Add<ServiceContractAttribute>();
var myWcfServiceMock = Substitute.For<IMyWcfService>();
var mockServiceHost = MockServiceHostFactory.GenerateMockServiceHost(myWcfServiceMock , new Uri("http://localhost:8001"), "MyService");
mockServiceHost.Open();
...
mockServiceHost.Close();
于 2011-10-05T11:35:50.150 に答える