测试WCF服务的首选测试策略是什么?
我应该实施服务然后托管它们然后测试它们吗?
或者
我应该实施该服务,然后测试服务DLLS然后托管它们吗?
您能否推荐一个好的WCF测试策略?
我已经实现了一些WCF服务,这些服务将部署在Intranet下,使用wshttpbinding托管并在Windows服务下运行。
答案 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操作
请查看此链接以获取详细信息