我是WCF的新手,在很大程度上也是分布式编程。我正在开发一个需要4个离散服务的项目。
我正在尝试正确定义每项服务的每个组件的职责。假设我有服务B需要与服务A通信。对于每个服务,我已经定义了服务实现类,服务主机和代理类。
为了进行单元测试,我使用依赖注入 - 因为服务B需要与服务A通信,我已经将A的代理类的实例作为服务B的构造函数参数传递。
当我进行单元测试服务B时,我必须启动并运行A的服务主机。
答案 0 :(得分:1)
考虑使用
ChannelFactory而不是生成的客户端。
ChannelFactory<IHello> clientFactory = new ChannelFactory<IHello>("targetConfiguration");
IHello client = clientFactory.CreateChannel();
string result = client.SayHello();
尽可能使用接口类型
关于你的第三个问题,如果你的目标是测试特定的小单位(单元测试的全部点:),答案是“否”。但是编写一些集成测试总是更好,以确保您没有任何序列化/托管问题。