WCF单元测试

时间:2020-03-06 14:54:53  来源:igfitidea点击:

如何对WCF服务进行单元测试?有任何第三方工具可用吗?

解决方案

我们到底要测试什么?连接性或者服务方式?

关于WCF的很棒的事情是,我们可以只定义接口(err,合约)并将它们作为常规代码进行测试。然后,我们可以假定它们可以通过WCF支持的任何连接类型工作。

可以通过直接在UT或者开发Web服务器上托管服务来测试连接性。

至于工具,我们有大量的单元测试框架:NUnit,Visual Studio中的内置测试,xUnit等,等等。

如果我记得正确的话,可以下载" Visual Studio 2008和.NET Framework 3.5培训套件"和" .NET Framework 3.5增强功能培训套件"。

如果真的要测试WCF服务,则最好进行集成测试,该测试实际上就是其中的客户端-服务器连接性部分。

如aku所说,如果我们正在测试服务方法(即代码行为),则可以直接对它进行单元测试,并绕过WCF基础架构。当然,如果代码依赖于WCF上下文类(例如OperationContext),那么我建议引入包装器,就像ASP.NET MVC对HttpContext所做的那样。

为了测试连接性,这将取决于我们配置的端点的类型。在某些情况下,我们可以在单元测试中自我托管WCF服务(就像使用WCF Windows服务一样)并对其进行测试。

但是,如果要测试特定于那些托管环境的WCF行为(即SSL,身份验证方法),则可能需要启动ASP.NET开发Web服务器甚至IIS。这变得棘手,并且可以开始对每个人的开发机器和构建服务器的配置提出要求,但是这是可行的。

我们可以使用Typemock隔离器来做到这一点。这是有关测试客户端和服务器端的几篇文章。我们可以在没有任何依赖性的情况下做到这一点,包括配置文件。

吉尔·齐尔伯费尔德(Gil Zilberfeld)
打字模拟

如果我们想测试实际运行的服务,那么SoapUI是免费的,并且具有一些出色的功能。唯一需要注意的是,我仅使用基本HTTP绑定进行了尝试。

如果我们正在寻找SOA测试,我已经看到它用于评估WCF服务的性能和可伸缩性测试。我没有费用或者许可的信息。

在本例中,我们从UI捕获了消息,以便执行自动化测试。

Typemock隔离器是用于对wcf服务进行单元测试的工具,还有其他功能...