繁体   English   中英

使用WCF,依赖注入和单元测试的服务间通信体系结构

[英]Inter-service Communication Architecture Using WCF, Dependency Injection, and Unit Testing

我是WCF的新手,而且在很大程度上还是分布式编程。 我正在一个需要4个离散服务的项目中。

我正在尝试正确定义每个服务的每个组件的职责。 假设我有需要与服务A进行通信的服务B。对于每个服务,我都定义了服务实现类,服务主机和代理类。

为了进行单元测试,我正在使用依赖项注入-由于服务B需要与服务A通信,因此我已经将A的代理类的实例作为构造函数参数传递给服务B。

在进行单元测试服务B时,​​我必须启动并运行A的服务主机。

  1. 这是进行依赖注入的错误方法吗? 如果是这样,为什么,以及您如何建议我这样做?
  2. 是否有更好的方式进行依赖注入?
  3. 我是否必须运行服务主机才能在单元测试中获得正确的结果?

考虑使用

  • ChannelFactory而不是生成的客户端。

     ChannelFactory<IHello> clientFactory = new ChannelFactory<IHello>("targetConfiguration"); IHello client = clientFactory.CreateChannel(); string result = client.SayHello(); 
  • 接口类型尽可能

  • 在编写测试时注入接口实现的一种模拟对象框架( 示例 )。

关于第三个问题,如果您的目标是测试特定的小型单元(单元测试的整个要点:),则答案为“否”。 但是最好编写一些集成测试以确保您没有任何序列化/托管问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM