测试WCF服务的策略

Inf*_*ner 3 c# wcf nunit moq

测试WCF服务的首选测试策略是什么?

我应该实现服务然后托管它们然后测试它们吗?

要么

我应该实现该服务,然后测试服务DLLS然后托管它们?

能否请您推荐一个好的WCF测试策略?

我已经实现了几个WCF服务,这些服务将部署在Intranet下,使用wshttpbinding托管并在Windows服务下运行.

Cod*_*ike 8

我通常做的是创建两组测试.其中一个是单元测试,我在其中创建服务实现的实例,并对其进行测试.这完全绕过了WCF.

然后我有一个单独的测试项目,我最终调用集成测试,在那里我将启动实际WCF服务的实例(通常以自托管的方式),并创建一个WCF客户端的实例,并调用客户端并验证结果.这使用WCF,基本上只是通过localhost查询我的服务.

我发现这在测试中提供了最佳的覆盖范围,因为有时候你最终会遇到WCF错误,如果绕过WCF,通常不会发现这些错误.

  • 在我的特定情况下,我的服务实现将其数据层依赖注入到它们中.在我的单元测试中,我用Moq和构造函数将它们模拟出来 - 将它们注入到我的服务实现中.但是,我的集成测试不会模拟数据层.这对我的案子来说非常具体; 我们的集成测试真正测试了整个应用程序,从WCF请求到数据库并进行备份.然而,使用Unity之类的依赖注入,将Intg测试从注入模拟数据层的不同Unity配置运行起来并不困难. (3认同)