2016-09-28 69 views
0

PHPUnit有methods來虛擬測試數據庫,但是如何測試像curl這樣的HTTP服務?爲curl創建一個測試用例httprequest

我的類方法獲取URL並請求參數發送到服務器。它以json的形式接收答案,並將此json發送給另一個方法進行解析並返回。

我想爲這個類方法創建一個PHPUnit測試用例。我應該提供一個真正的網址到我的服務器?服務器應該返回一個成功/錯誤消息到這個測試用例嗎?

+0

使用guzzle作爲httpclient。有一個功能模擬電話 – Matteo

回答

1

而不是在你的班級的某些方法中使用curl連接,將curl調用包裝在它自己的類中,模擬它,並將它傳遞給你的班級。

通過這種方式,您可以通過讓模擬返回真實的json並模擬捲曲錯誤(使模擬行爲與真正的curl庫類似)來測試快樂路徑。

同樣適用於解析部分。如果您將解析代碼移到它自己的類中,並將它注入到「main」類中,那麼您將能夠嘲笑它並模擬解析錯誤。

對於單元測試你永遠不應該做真正的網絡調用。

+0

感謝,至於你的第一段,你的意思是不要直接在測試用例中調用curl,而是將它作爲一個單獨的類並在測試用例中調用它?請通過一些示例代碼澄清你的意思。 – user4271704