wcf端点地址mock

时间:2014-03-05 09:51:09

标签: c# wcf mocking

对于我们的验收测试,我们已经为第三方服务创建了模拟实现,它的工作方式是我们在每次测试运行之前用这些服务替换端点地址:

var webConfigPath = @"..\..\..\..\Hosts\Host\web.config";
var mockSvcUri = "http://localhost:8000/AcceptanceTest/VehicleService";

protected override void before_all()
{
    var mockVehicleService = Mock.Of<IVehicleService>();
    Mock.Get(mockVehicleService).Setup(c => {...} ));

    var serviceHost = mockVehicleService.GenerateMockServiceHost(new Uri(mockSvcUri));
    var previousEndPoint = serviceHost.UpdateClientEndpoint(webConfigPath);
    serviceHost.Open();
}

...并将其更改回after_all()中的原始地址。这并不理想,因为如果测试结束,after_all()可能无法执行,我们最终会得到错误的配置文件。

我想知道是否可以创建用于读取配置的接口和类,并使WCF服务通过此接口读取端点地址,而不是直接读取web.config文件。这样就可以很容易地模拟测试的端点地址。或许还有另一种解决方案?

0 个答案:

没有答案