2012-02-27 54 views
6

我需要在我的Delphi應用程序中測試一些HTTP組件。我使用DUnit並希望在測試中添加一些自動化功能。因此,我的測試代碼需要啓動本地HTTP服務器,配置它(例如,準備在3秒內斷開連接,或模擬低帶寬,或要求輸入登錄名/密碼等),運行我的單元 - 測試並關閉HTTP服務器。在Delphi中進行單元測試的HTTP服務器

是否有一些HTTP服務器可用於Delphi/DUnit?

我知道Mozilla團隊有such server,但將它集成到DUnit並不是那麼容易。

回答

9

我使用Indy的TIdHttpServer在相同的過程中提供服務。

該方法允許我檢查進入的請求是否正確,以及檢查客戶端的行爲。另外,你可以通過測試用例單獨設置服務器在測試用例上,使得你的單元測試更易於理解(意味着你在其他地方沒有「測試」部分)。

0

您可以使用單元測試/ DUnit來構建自動集成測試。比如說,HTTP組件作爲http客戶端調用Web服務。您可以製作您自己的模擬Web服務,或者僅使用任何公共Web服務,例如來自Google或Amazon的服務之一。因此,您只需創建一個Google或Amazon開發人員帳戶,並使用一些基本服務功能進行測試。

0

如果您正在測試SOAP服務,請使用SoapUI根據您的WSDL站起一個「模擬」服務。 您可以讓它返回各種響應(按順序,或者使用一些簡單的腳本來匹配請求內容的響應)。我通過匹配發送的請求中的「請求ID」(只是一個GUID) DUnit測試,以在SoapUI中進行響應。這是一個簡單的xpath查詢來匹配它們。

您可以讓它返回「canned」錯誤/異常,當然,當它沒有運行時,您將擁有「nobody's home」測試用例。