[英]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.