测试WCF服务的策略

时间:2011-12-13 17:47:14

标签: c# wcf nunit moq

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

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

或者

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

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

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

3 个答案:

答案 0 :(得分:8)

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

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

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

答案 1 :(得分:2)

我的WCF服务中没有任何逻辑。它总是将呼叫委托给另一个服务。

所以我可以在不引用WCF的情况下测试服务。

approach让我来测试wcf服务。

E.g。

public class CalcService
{
   public int Add(int x, int y) 
   {
       return x+y;
   }
}

Calc服务主机

public class CalculaterService
{

   private CalcService _calcService;
   public CalcService CalcService {get { return _calcService;}}

   public CalculaterService(CalcService calcService) 
   {
      _calcService = calcService;
   }

   public int Add(int x, int y) 
   {
     return CalcService.Add(x, y);
   }

}

答案 2 :(得分:0)

您可以使用WCF SVCTraceViewer查看和跟踪wcf操作

请查看此链接以获取详细信息

http://msdn.microsoft.com/en-us/windows/bb980924.aspx