使用ChannelFactory对单元测试WCF进行测试

时间:2013-01-29 10:04:35

标签: wcf channelfactory

我正在开发一些WCF服务,它们将部署到Azure,所以我想尝试在本地完成尽可能多的单元测试,以避免在我们运行集成时无用的往返于临时区域试验。 服务使用CQRS模式,我按以下方式分层: - 将依赖注入WCF服务的引导程序 - 每种服务方法的命令 - 拦截命令的命令处理程序 到目前为止,我可以完全单元测试命令,处理程序和引导程序。我还需要写的是这种类型的测试:

[TestMethod]
public void Client_ReceiveValidCommand_WillExecute()
{
    var factory = new ChannelFactory<IDomainWriteService>("*");
    var service = factory.CreateChannel();
    var expectedCommand = BuildAddUsersCommand();
    service.AddUsers(expectedCommand);
}

问题是此测试假装配置文件中的有效端点。 有没有什么方法可以在我的测试健身开始时将IIS Express启动,然后将通道工厂插入这个IIS实例? 我根本无法创建一个临时区域,我可以在其中部署我的服务并运行我的集成测试,所以我希望尽可能遵循单元测试方式。

1 个答案:

答案 0 :(得分:0)

我在这里找到了一篇有趣的文章:http://www.reimers.dk/jacob-reimers-blog/testing-your-web-application-with-iis-express-and-unit-tests解释了如何在IIS Express中托管您的测试,当然还有在您的单元测试中运行IIS express 。 通过这种方式,我可以简单地创建一个新的IIS Express实例并托管我的WCF服务,运行单元测试并最终销毁所有内容。