我是 WCF 的新手。我创建了一个基本服务,工程师使用调试器和 WCFTestClient 对其进行了测试。我从未编写过自己的 WCF 客户端。现在我需要为服务构建单元测试。
我的课程:
IXService
CXService
CServiceLauncher
(是的,我知道 C 前缀不符合当前标准,但我客户的标准要求它。)
我的服务功能可以直接针对 进行测试XService
,但我也需要测试CServiceLauncher
。我想要做的就是连接到一个 URI 并发现那里是否有一个服务正在运行以及它提供了哪些方法。
我读到的其他问题:
- 单元测试 WCF 服务- 在单元测试中启动服务主机时,AddressAccessDeniedException“您的进程没有对此命名空间的访问权限”
- WCF 单元测试- 建议在单元测试中托管服务,模糊地提及通过 HTTP 连接到服务
- WCF MSMQ 单元测试- 参考 MSMQ,比我需要的更详细
- 单元测试 WCF 方法- 我从不知道我可以自动生成测试,但是系统不够聪明,不知道要断言什么。
测试大纲:
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();
}
}