1

我正在开发一些 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 实例?我根本无法创建一个暂存区域,我可以在其中部署我的服务并运行我的集成测试,所以我宁愿尽可能遵循单元测试方式。

4

1 回答 1

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 服务,运行单元测试并最终销毁所有内容。

于 2013-01-29T10:31:35.597 回答