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