2011-12-13 157 views
3

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

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

或者

我应该实现服务,然后测试该服务的DLL和再收留他们?

你能推荐一个好的WCF测试策略吗?

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

+1

如何做同样的测试你会做任何其他应用程序? – 2011-12-13 17:49:17

回答

2

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

所以我可以测试服务没有任何参考WCF。

approach工作为我测试wcf服务。

例如

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); 
    } 

} 
8

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

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

我发现这给测试覆盖的最佳数量,因为有时你最终会遇到WCF错误,如果绕过WCF,通常不会发现它。

+1

太好了。谢谢。我将如何模拟WCF服务中使用的数据层接口? – InfoLearner 2011-12-13 22:25:11