[英]Unit Testing WCF Service is launching
我是WCF的新手。 我创建了一个基本服务,并用调试器和WCFTestClient对它进行了工程师测试。 我从未写过自己的WCF客户端。 现在,我需要为该服务构建单元测试。
我的课程:
IXService
CXService
CServiceLauncher
(是的,我知道C前缀不符合当前的标准,但是我的客户的标准要求它。)
可以直接针对XService
测试我的服务功能,但是我也需要测试CServiceLauncher
。 我要做的就是连接到URI,并发现那里是否有服务在运行,以及它提供了什么方法。
我读过的其他问题:
测试大纲:
public void StartUiTest()
{
Uri baseAddress = new Uri("http://localhost:8080/MyService");
string soapAddress = "soap";
IUserInterface target = new CServiceLauncher(baseAddress, soapAddress);
try
{
Assert.AreEqual(true, target.StartUi());
/// @todo Assert.IsTrue(serviceIsRunning);
/// @todo Assert.IsTrue(service.ExposedMethods.Count() > 4);
Assert.Inconclusive("This tells us nothing about the service");
}
finally
{
target.StopUi();
}
}
我只需要构建一个简单的客户端。
参考: http : //webbeyond.blogspot.com/2012/11/wcf-simple-wcf-client-example.html
添加到测试文件:
using System.ServiceModel;
using MyTests.ServiceReferenceNamespace;
try中的代码现在是:
Assert.AreEqual(true, target.StartUi());
XServiceClient client = new XServiceClient();
client.GetSessionID();
Assert.AreEqual(CommunicationState.Opened, client.State, "Wrong communication state after first call");
这不是一个真正的答案,所以请放轻松。
我一直在尝试做类似的事情,并且了解到集成测试很困难。 这很困难,因为您需要执行许多隐藏的任务,例如:
对我来说,这是巨大的头痛,却毫无收获。 不要误会我的意思,集成测试是一件很积极的事情,它只需要大量时间进行开发和支持。
我学到了什么? 这样做不会影响WCF服务的集成测试。 相反,我编写了大量的单元测试来测试合同,状态和行为。 通过涵盖这些内容,我可以确定软件的质量。 在部署过程中,我会与WCF进行集成。 通常,这只是配置环境或VM的一场战斗,然后,下次,部署将以(半)自动化的方式顺利进行并顺利进行。
大多数人也会使用Chef等工具自动进行部署,这些工具可以完全配置环境并部署WCF服务。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.